Page 1 of 1

VBA-import 4 file.excel ไปไว้ที่Workbook1(Worksheets("DATABASE")โดยกำหนดให้อยู่คนล่ะ columครับ

Posted: Wed Jan 15, 2020 12:18 pm
by lotto009
เรียนอาจาร์ยครับ
ขอความช่วยเหลือในการ import 4 file.excel ไปไว้ที่ Workbook1(Worksheets("DATABASE").Range(A1:Z) ที่เราตอ้งการด้วยครับ
ขั้นตอนคือ
1.Import Workbook2(Worksheets(1).range("A1:Z") copy past ไว้ที่ Workbook1(Worksheets("DATABASE").Range("A1:Z")
ปิดไฟล์Workbook1
2.Import Workbook3(Worksheets(1).range("A1:Z") copy past ไว้ที่ Workbook1(Worksheets("DATABASE").Range("ZZ1:AZ")
ปิดไฟล์Workbook3
3.Import Workbook4(Worksheets(1).range("A1:Z") copy past ไว้ที่ Workbook1(Worksheets("DATABASE").Range("BA1:BZ")
ปิดไฟล์Workbook3
4.Import Workbook5(Worksheets(1).range("A1:Z") copy past ไว้ที่ Workbook1(Worksheets("DATABASE").Range("CA1:CZ")
ปิดไฟล์Workbook4
5.ทำการsave Workbook1(Worksheets("DATABASE")ครับ
สุดท้ายผมแนบcodeมาด้วยนะครับ แต่ไม่ทำงาน
ขอบพระคุณมากครับ
อาร์ต

Code: Select all

Private Sub CommandButton1_Click()
Dim wb1 As Workbook, wb2 As Workbook, wb3 As Workbook, wb4 As Workbook, wb5 As Workbook
    Dim Ret1, Ret2, Ret3, Ret4, Ret5
 
 '-------------------------------------
     Set wb1 = ActiveWorkbook
 
    '~~> Get the File
    Ret1 = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*", _
    , "Please select file")
    If Ret1 = False Then Exit Sub
 'Workbook#2-------------------------------------
 
    Set wb2 = Workbooks.Open(Ret1)
    wb2.Worksheets("Sheet1").Cells.Copy wb1.Worksheets("RF DATABASE").Cells("A1:Z")
    wb2.Close SaveChanges:=False
 '-------------------------------------
 
    Set wb2 = Nothing
    Set wb1 = Nothing
    MsgBox "DONE!!."
    
 'Workbook#3-------------------------------------
 
    Set wb3 = Workbooks.Open(Ret2)
    wb3.Worksheets("Sheet1").Cells.Copy wb1.Worksheets("RF DATABASE").Cells("ZZ1:AZ")
    wb3.Close SaveChanges:=False
 '-------------------------------------
 
    Set wb3 = Nothing
    Set wb1 = Nothing
    MsgBox "DONE!!."
    
 'Workbook#4-------------------------------------
 
    Set wb4 = Workbooks.Open(Ret3)
    wb4.Worksheets("Sheet1").Cells.Copy wb1.Worksheets("RF DATABASE").Cells("BA1:BZ")
    wb4.Close SaveChanges:=False
 '-------------------------------------
 
    Set wb4 = Nothing
    Set wb1 = Nothing
    MsgBox "DONE!!."
    
 'Workbook#5-------------------------------------
 
    Set wb5 = Workbooks.Open(Ret4)
    wb5.Worksheets("Sheet1").Cells.Copy wb1.Worksheets("RF DATABASE").Cells("CA1:CZ")
    wb5.Close SaveChanges:=False
 '-------------------------------------
 
    Set wb5 = Nothing
    Set wb1 = Nothing
    MsgBox "DONE!!."
    
End Sub
    


Re: VBA-import 4 file.excel ไปไว้ที่Workbook1(Worksheets("DATABASE")โดยกำหนดให้อยู่คนล่ะ columครับ

Posted: Wed Jan 15, 2020 5:48 pm
by snasui
:D ตัวอย่าง Code ครับ

Code: Select all

Private Sub CommandButton1_Click()
    Dim wb1 As Workbook, wb2 As Workbook
    Dim Ret1 As Variant, i As Integer
    Dim arrAdd() As Variant
    Set wb1 = ActiveWorkbook

    Ret1 = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*", _
        , "Please select file", , True)
    If TypeName(Ret1) = "Boolean" Then Exit Sub
    arrAdd = Array("A1", "ZZ1", "BA1", "CA1")
    For i = 1 To UBound(Ret1)
        Set wb2 = Workbooks.Open(Ret1(i), False)
        wb2.Worksheets(1).UsedRange.Copy wb1.Worksheets("RF DATABASE").Range(arrAdd(i - 1))
        wb2.Close False
    Next i
End Sub
สามารถเลือก 4 ไฟล์พร้อมกัน หากเลือกครั้งละไฟล์จะต้องเขียนใหม่โดยจะต้องเพิ่มตัวนับว่ามีการ Import เข้ามาแล้วกี่ไฟล์จะได้วางข้อมูลได้ตรงตำแหน่ง สำหรับกรณีนี้ลองเขียนมาเองก่อน ติดตรงไหนค่อยถามกันต่อครับ

Re: VBA-import 4 file.excel ไปไว้ที่Workbook1(Worksheets("DATABASE")โดยกำหนดให้อยู่คนล่ะ columครับ

Posted: Wed Jan 15, 2020 9:02 pm
by lotto009
เรียนอาจาร์ยครับ
ขอบพระคุณมากครับ ตรงตามที่ผมต้องการเลย
ดูแลสุขภาพนะครับ
เคารพนับถืออย่างสุง
อาร์ต

Re: VBA-import 4 file.excel ไปไว้ที่Workbook1(Worksheets("DATABASE")โดยกำหนดให้อยู่คนล่ะ columครับ

Posted: Mon Jan 20, 2020 2:26 pm
by lotto009
ขออนุญาตเพิมเติมครับ
หา เปิดไฟล์ .csv ได้ด้วยต้องทำอย่างไรครับ
ผมใช้คำสั่งแบบนี้แต่ไม่ทำงานครับ

Code: Select all

  Ret1 = Application.GetOpenFilename("Excel Files  (*.xls*),*.xls*,(*.CSV),*.CSV")_
    , "Please select file")
    If Ret1 = False Then Exit Sub  
    
ขอบพระคุณอาจาร์ยมากครับ
:sg:

Re: VBA-import 4 file.excel ไปไว้ที่Workbook1(Worksheets("DATABASE")โดยกำหนดให้อยู่คนล่ะ columครับ

Posted: Mon Jan 20, 2020 3:07 pm
by logic
น่าจะเป็นแบบนี้นะครับ

(*.xls*),*.xls*,(*.CSV*),*.CSV*" 👈

Re: VBA-import 4 file.excel ไปไว้ที่Workbook1(Worksheets("DATABASE")โดยกำหนดให้อยู่คนล่ะ columครับ

Posted: Mon Jan 20, 2020 3:12 pm
by lotto009
ลองแล้วครับ ไม่ได้ครับ ติดสีเหลืองที่ Private Sub CommandButton1_Click()

Re: VBA-import 4 file.excel ไปไว้ที่Workbook1(Worksheets("DATABASE")โดยกำหนดให้อยู่คนล่ะ columครับ

Posted: Mon Jan 20, 2020 3:16 pm
by logic
ใส่ , ครบไหมครับ ❓

ตัว , ใส่ให้ครบตามโค้ดอาจารย์เลยครับ ⬆

Re: VBA-import 4 file.excel ไปไว้ที่Workbook1(Worksheets("DATABASE")โดยกำหนดให้อยู่คนล่ะ columครับ

Posted: Mon Jan 20, 2020 3:40 pm
by lotto009
ผมใส่ครบครับ
ของอาจาร์ย
Ret1 = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*", _
, "Please select file", , True)
ของผมครับ
Ret1 = Application.GetOpenFilename("Excel Files (*.xls*),*.xls*,(*.CSV*),*.CSV*"
, "Please select file", , True)
ไม่ทำงานเลย
ต้องขอโทษด้วยนะครับช่วงนี้งานผมค่อนข้างจะใช้ vba เยอะนิดหน่อย ช่วยดูให้ด้วยนะครับ
ขอบพระคุณมากครับ
อาร์ต

Re: VBA-import 4 file.excel ไปไว้ที่Workbook1(Worksheets("DATABASE")โดยกำหนดให้อยู่คนล่ะ columครับ

Posted: Mon Jan 20, 2020 7:11 pm
by snasui
lotto009 wrote: Mon Jan 20, 2020 3:40 pm *.xls*", _
, "Please select file", , True)
:D ก่อน "Please select file" มีเครื่องหมาย , สองตัวลองทบทวนต้นฉบับที่ผมโพสต์ใหม่ครับ :roll:

Re: VBA-import 4 file.excel ไปไว้ที่Workbook1(Worksheets("DATABASE")โดยกำหนดให้อยู่คนล่ะ columครับ

Posted: Mon Jan 20, 2020 9:37 pm
by lotto009
เรียนอาจาร์ยครับ
ผมใช้วิธีนี้เลยครับ
Ret1 = Application.GetOpenFilename("Excel Files (*.CSV*), *.CSV*", _
, "Please select file", , True)

ขอบคุณครับได้แล้ว