Page 1 of 1
อยากทราบวิธีการดึงข้อมูลจากต่างไฟล์ด้วย VBA ครับ
Posted: Wed Dec 28, 2011 10:52 pm
by testaman
สวัสดีครับอาจารย์ คือผมต้องการที่จะสร้าง Code เพื่อที่จะดึงข้อมูลจากต่างไฟล์ โดยที่ รับค่า ที่อยู่ไฟล์, ชื่อไฟล์, ชื่อชีต, cellที่อยู่ของข้อมูล
สาเหตุที่ต้องทำอย่างนี้ เพราะว่า ในไฟล์งาน มีข้อมูลของชื่อไฟล์อยู่แล้ว และต้องการจะนำมาใช้ในการดึงข้อมูลจากไฟล์นั้น แต่ให้วิธีการดึงปกติไม่ได้
เลยอยากทราบวิธีการเขียน VBA น่ะครับว่าจะเขียนการดึงข้อมูลจากต่างไฟล์อย่างไร
ขอบพระคุณล่วงหน้าครับ
Re: อยากทราบวิธีการดึงข้อมูลจากต่างไฟล์ด้วย VBA ครับ
Posted: Thu Dec 29, 2011 12:09 am
by snasui

กรณีต้องการใช้ VBA จำเป็นต้องเขียนมาก่อนครับ ติดตรงไหนก็ค่อยถามกันต่อได้เรื่อย ๆ โดยแจ้ง Module แจ้ง Procedure ด้วยเสมอเพื่อให้เข้าถึงปัญหาได้โดยไวครับ
Re: อยากทราบวิธีการดึงข้อมูลจากต่างไฟล์ด้วย VBA ครับ
Posted: Thu Dec 29, 2011 12:25 am
by testaman
ผมลองเขียนแบบนี้ พอลองใช้งาน macro แล้วมันเปิดแค่ file Data1 ขึ้นมาเฉยๆ ไม่ยอมดึงข้อมูลมาใส่
Code: Select all
Sub AddData()
Dim i As Long
Dim r As Range
Dim oFile As Variant
Dim oSheet As Variant
Dim oRange As Variant
Dim wbk As Workbook
On Error Resume Next
With Worksheets("Sheet1")
Set r = .Range(.Range("A1"), Range("A65536").End(xlUp))
End With
Application.EnableEvants = False
oFile = "C:\Documents and Settings\Guest\Desktop\test\Data1.xls"
oSheet = "Sheet1"
If r.Cells(4, 3) <> "" Then
Set wbk = Workbooks.Open(Filename:=oFile)
Set oRange = wbk.Worksheets(oSheet).Range("G21:I21")
Range("D4").Value = Application.WorksheetFunction.VLookup("¹¹.ÃÇÁ", oRange, 2, False)
End If
Application.EnableEvents = True
End Sub
ผมแนบไฟล์มาให้ด้วยครับ อยู่ใน Module2 ของ ไฟล์ Data
Re: อยากทราบวิธีการดึงข้อมูลจากต่างไฟล์ด้วย VBA ครับ
Posted: Thu Dec 29, 2011 8:00 am
by snasui

ลองดู Code ตามด้านล่างครับ
อย่าลืมเปลี่ยนตำแหน่งการอ้างอิงที่ "D:\test\Data1.xls" ให้เป็นตำแหน่งที่เก็บไฟล์จริง
Code: Select all
Sub AddData()
Dim i As Long
Dim r As Range
Dim oFile As Variant
Dim oSheet As Variant
Dim oRange As Variant
Dim wbk As Workbook
'On Error Resume Next
Application.EnableEvents = False
With Worksheets("Sheet1")
Set r = .Range(.Range("A1"), Range("A65536").End(xlUp))
End With
oFile = "D:\test\Data1.xls"
oSheet = "Sheet1"
If r.Cells(4, 3) <> "" Then
Set wbk = Workbooks.Open(Filename:=oFile)
Set oRange = wbk.Worksheets(oSheet).Range("G21:I21")
Workbooks("Data.xls").Sheets("Sheet1") _
.Range("D4").Value = Application.WorksheetFunction _
.VLookup("ddd", oRange, 2, False)
End If
Application.EnableEvents = True
End Sub
สำหรับการทำข้อความที่เป็น Code VBA ให้แสดงเป็น Code ดูได้จากที่นี่ครับ
viewtopic.php?f=3&t=1187&p=7403#p7403 เพื่อเพื่อน ๆ จะได้สะดวกในการอ่าน Code ครับ
Re: อยากทราบวิธีการดึงข้อมูลจากต่างไฟล์ด้วย VBA ครับ
Posted: Thu Dec 29, 2011 6:19 pm
by testaman
ขอบคุณมากครับ ใช้งานได้แล้ว
