snasui.com ยินดีต้อนรับ ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
สวัสดีค่ะ พอดีตอนนี้เขียน VBA ข้ามไฟล์เเล้ว Bug ค่ะ เขียนให้ดึกข้อมูลจากไฟล์ที่เป็น Database มาใส่ในไฟล์ HOME ค่ะ ตอนนี้ลองเขียนเเล้วยังรันได้ไม่ถึงขั้นตอนสูตรมัน Bug เเล้วค่ะ ตอนนี้ที่ Bug คือ Set wb = Workbooks.Open("D\Test\Database.xls") แต่ไม่มั่นใจว่าผิดตั้งเเต่เริ่มหรือเปล่าคะ ขอคำเเนะนำด้วนนะคะ (VBA ที่เขียนไปเป็นการเรียนรู้จากไฟล์ตัวอย่างๆ หลายๆ แบบ พึ่งเริ่มหัดเขียนได้ไม่นานมากหากผิดตรงไหนขอคำเเนะนำด้วยนะคะ)
Sub mylookupNewtran()
Dim lastrow As Long, wb As Workbook
Dim myrange As Range, tb As Workbook
Set tb = ThisWorkbook
With tb.Sheets(1)
lastrow = .Range("D" & .Rows.Count).End(xlUp).Row
End With
Set wb = Workbooks.Open("D\Test\Database.xls")
Set myrange = wb.Sheets(1).Range("A:L")
On Error Resume Next
With tb.Sheets(1)
Sheets(1).Cells(7, 5).Value = Application.WorksheetFunction.VLookup(Cells(7, 5), myrange, 5, False)
Sheets(1).Cells(9, 5).Value = Application.WorksheetFunction.VLookup(Cells(7, 5), myrange, 5, False)
Sheets(1).Cells(11, 5).Value = Application.WorksheetFunction.VLookup(Cells(7, 5), myrange, 5, False)
Sheets(1).Cells(13, 5).Value = Application.WorksheetFunction.VLookup(Cells(7, 5), myrange, 5, False)
End With
wb.Close False
End Sub
Sub mylookupNewtran()
Dim lastrow As Long, wb As Workbook
Dim myrange As Range, tb As Workbook
Set tb = ThisWorkbook
With tb.Sheets(1)
lastrow = .Range("D" & .Rows.Count).End(xlUp).Row
End With
Set wb = Workbooks.Open("D\Test\Database.xls")
Set myrange = wb.Sheets(1).Range("A:L")
On Error Resume Next
With tb.Sheets(1)
Sheets(1).Cells(7, 5).Value = Application.WorksheetFunction.VLookup(Cells(7, 5), myrange, 5, False)
Sheets(1).Cells(9, 5).Value = Application.WorksheetFunction.VLookup(Cells(7, 5), myrange, 5, False)
Sheets(1).Cells(11, 5).Value = Application.WorksheetFunction.VLookup(Cells(7, 5), myrange, 5, False)
Sheets(1).Cells(13, 5).Value = Application.WorksheetFunction.VLookup(Cells(7, 5), myrange, 5, False)
End With
wb.Close False
End Sub
Sub mylookupNewtran()
Dim lastrow As Long, wb As Workbook
Dim myrange As Range, tb As Workbook
Set tb = ThisWorkbook
With tb.Sheets(1)
lastrow = .Range("D" & .Rows.Count).End(xlUp).Row
End With
Set wb = Workbooks.Open("C:\Users\Workbook\Test\Database.xlsm")
Set myrange = wb.Sheets(1).Range("A1:L1728")
On Error Resume Next
With tb.Sheets(4)
Sheets(4).Cells(7, 5).Value = Application.WorksheetFunction.VLookup(D5, myrange, 7, True)
Sheets(4).Cells(9, 5).Value = Application.WorksheetFunction.VLookup(D5, myrange, 9, True)
Sheets(4).Cells(11, 5).Value = Application.WorksheetFunction.VLookup(D5, myrange, 11, True)
Sheets(4).Cells(13, 5).Value = Application.WorksheetFunction.VLookup(D5, myrange, 13, True)
End With
'wb.Close False
End Sub
Sub mylookupNewtran()
Dim lastrow As Long, wb As Workbook
Dim myrange As Range, tb As Workbook
Set tb = ThisWorkbook
With tb.Sheets(1)
lastrow = .Range("D" & .Rows.Count).End(xlUp).Row
End With
Set wb = Workbooks.Open("C:\Users\Workbook\Test\Database.xlsm")
Set myrange = wb.Sheets(1).Range("A1:L1728")
On Error Resume Next
With tb.Sheets(4)
.Cells(7, 4).Value = Application.WorksheetFunction.VLookup(.[D5], myrange, 7, 0)
.Cells(9, 4).Value = Application.WorksheetFunction.VLookup(.[D5], myrange, 9, 0)
.Cells(11, 4).Value = Application.WorksheetFunction.VLookup(.[D5], myrange, 11, 0)
.Cells(13, 4).Value = Application.WorksheetFunction.VLookup(.[D5], myrange, 13, 0)
End With
'wb.Close False
End Sub