Page 1 of 1

ดึงข้อมูล จาก workbooks ไปอีก workbooks

Posted: Thu Nov 14, 2019 9:15 am
by sarawut.a
*ขอรบกวนด้วยครับ*
ผมต้องการดึงข้อมูล หรือ Up Data จากอีก workbook ของ Excel file ชื่อว่า "Product Master list." โดยดึงข้อมูลจาก Sheet(Master list)
มาไว้อีก workbook ของ Excel file ชื่อว่า "Product Master list.(Sale)" โดยวางข้อมูลลงใน Sheet(master list) เช่นกันครับ
จะต้องใช้สูตร Excel หรือ VBA ทำอย่างไรได้ครับ
และผมลองทำ โดย Record Macro ไว้ แต่ไม่สมบูณ์ครับ

Re: ดึงข้อมูล จาก workbooks ไปอีก workbooks

Posted: Thu Nov 14, 2019 9:43 am
by parakorn
ไม่เห็นโค้ดในไฟล์แนบครับ
ลอง Save เป็น .xlsm และแนบโค้ดมาด้วย เพื่อนๆสมาชิกจะได้ช่วยกันดูได้ครับ

Re: ดึงข้อมูล จาก workbooks ไปอีก workbooks

Posted: Thu Nov 14, 2019 10:45 am
by sarawut.a
ถ้าดูจาก โค็ดในฎปแำส เหมือนจะ save ไม้ได้ครับ ผมได้ copy ไว้ในท้ายบรรทัดด้านล้างมาด้วยครับ

Sub Macro1()
Macro1 Macro
Windows("Product Master List..xlsx").Activate
Cells.Select
Selection.Copy
Windows("Product Master List.(Sale).xlsx").Activate
Cells.Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
End Su

Re: ดึงข้อมูล จาก workbooks ไปอีก workbooks

Posted: Thu Nov 14, 2019 11:26 am
by sarawut.a
แนบไฟล์ ที่มีโค็ด มาให้ช่วยดูและแก้ไขครับ

Re: ดึงข้อมูล จาก workbooks ไปอีก workbooks

Posted: Thu Nov 14, 2019 2:56 pm
by parakorn
ตัวอย่างโค้ดครับ

Code: Select all

Sub Getdata()

'
    Dim strPath As Variant, i As Integer
    Dim tb As Workbook
    
    Sheets(1).Select
    On Error Resume Next
    Cells.Select
    Selection.ClearContents
    On Error GoTo 0
    
    Set tb = ThisWorkbook

        strPath = Application.GetOpenFilename("Excel files(*.xlsx*),*.xlsx*", _
        Title:="Please select text files.", MultiSelect:=True)
    If TypeName(strPath) = "Boolean" Then Exit Sub
   
    For i = 1 To UBound(strPath)
        fName = VBA.Left(strPath(i), InStr(strPath(i), ".")) & "xlsx"
        Workbooks.OpenText Filename:=strPath(i), origin:=65001, startrow:=1, DataType:=xlDelimited, textQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
        , Comma:=False, Space:=False, other:=True, OtherChar:="|", fieldinfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 2), Array(5, 1), Array(6, 1), _
        Array(7, 1), Array(8, 1)), TrailingMinusNumbers:=True
        
        With ActiveWorkbook.Sheets(1)
        
            .Range("a2").Offset(0, .UsedRange.Columns.Count) _
                .Resize(.UsedRange.Rows.Count - 1, 1).Value = .Name
            .UsedRange.Offset(0, 0).Copy
        End With

        With tb.Sheets(1)

            .Range("a" & .Rows.Count).End(xlUp).Offset(0, 0).PasteSpecial xlPasteValues

        End With
        Application.CutCopyMode = False
        ActiveWorkbook.Close False
    Next i
    
    MsgBox "Finish."
    
End Sub

Re: ดึงข้อมูล จาก workbooks ไปอีก workbooks

Posted: Tue Nov 19, 2019 5:13 pm
by sarawut.a
ขอบคุณครับ