Page 1 of 1

สอบถาม VBA ในการ Vlookup ข้ามไฟล์

Posted: Mon Dec 11, 2017 2:44 pm
by teays
ผมใช้ VBA ในการ Vlookup ข้ามไฟล์ ซึ่ง Code ก็ทำงานได้ตามต่องการ (เมื่อทำการ Insert >> Module ที่ไฟล์นั้นๆ >> Code)
ซึ่ง Code จะทำการดึง X จากไฟล์ Master test ไปยังไฟล์ TestVlookup ในกรณีที่มี Material เดียวกัน

แต่ติดปัญหาตรง เมื่อ Save ไฟล์แบบ .xlam เพื่อใส่ Addin ให้ใช้งาน
จะไม่สามารถ Vlookup ข้อมูลได้เหมือนเดิม
พอกด Run แล้วเหมือนไม่มีไรเกิดขึ้นครับ
ขอบคุณครับ

Code: Select all

Sub Vlookup()
    Dim rw As Long, x As Range
    Dim extwbk As Workbook, twb As Workbook

    Set twb = ThisWorkbook
    Set extwbk = Workbooks.Open("C:\Users\pongpichai.r\Desktop\Master Test.xlsx")
    Set x = extwbk.Worksheets("Sheet1").Range("A1:B222")

    With twb.Sheets("Sheet1")

        For rw = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
            .Cells(rw, 2) = Application.Vlookup(.Cells(rw, 1).Value2, x, 2, False)
        Next rw

    End With

    extwbk.Close savechanges:=False
End Sub

Re: สอบถาม VBA ในการ Vlookup ข้ามไฟล์

Posted: Mon Dec 11, 2017 3:07 pm
by puriwutpokin
เทสท์แล้วก็ใช้ได้นะครับ แต่ต้องSave ไฟล์ที่มีโค้ดเป็นนามสกุล .xlsm ด้วยเพราะที่แนบมาไม่ใช่นามสกุลที่ว่าครับ

Re: สอบถาม VBA ในการ Vlookup ข้ามไฟล์

Posted: Mon Dec 11, 2017 3:12 pm
by teays
เรียน อ.puriwutpokin
ใช่ครับ หาก Save เป็น .Xlsm จะใช้ได้ตอนที่ Code ฝังอยู่กับไฟล์นั้นๆ

แต่ถ้านำ Code Save แบบ .Xlam แล้วใส่ Addin ไว้เพื่อใช้งานกับเครื่องอื่นๆ
หรือ Save แบบ .Xlsm แล้วใส่ใน Xlstat จะใช้ไม่ได้เหมือนกันครับ

Re: สอบถาม VBA ในการ Vlookup ข้ามไฟล์

Posted: Mon Dec 11, 2017 6:16 pm
by teays
เรียน อ.ครับ

ผมแก้ไขปัญหาได้แล้วครับ

โดยการเปลี่ยน Code

Code: Select all

Set twb = ThisWorkbook เป็น ActiveWorkbook
ขอบคุณครับ