Page 1 of 1
รบกวนปรึกษาครับ วิธีเปลี่ยน link หลายไฟล์
Posted: Sat Oct 28, 2017 10:18 am
by sngul
ขอเรียนปรึกษา พอมีวิธีเปลี่ยน link ทีละไฟล์จนหมด folder ไหมครับ ... คือผมมี file รายงานประจำวัน(ทุกวัน) ตอนนี้ผมสร้างไฟล์ Report เพื่อดึงข้อมูลเฉพาะที่ต้องการมารวมกันไว้ใน sheet1 แล้ว copy ข้อมูลมาเก็บไว้ใน shhet2 แบบเป็นแถวลงมาเลื่อยๆวันต่อวัน เพื่อสรุปเป็นรายงาน ผมทำแบบนี้ทุกวัน ไม่มีปัญหาอะไร ...แต่พอมาวันนี้ต้องการเพิ่มข้อมูลจาก file รายงาน ซึ่งผมต้อง link ข้อมูลเพิ่มใน ไฟล์ report,sheet1 ข้อมูลของวันนี้และหลังจากวันนี้ไม่มีปัญหา แต่ต้องการข้อมูลจากวันแรก .... ผมต้อง Data>>Edit Link>>รายงานวันแรก--ถึงปัจจุบัน >> Copy >> Past เป็นร้อยครั้ง ใช้เวลามากเลยครับ T_T พอมีทางทำได้ไหมครับ vba ก็ได้ ผมทำได้แค่บันทึก vba แต่แก้ code ให้เปลี่ยน link ไปเลื่อยๆจนครบไม่ได้ ... ขอบคุณครับ ..
Re: รบกวนปรึกษาครับ วิธีเปลี่ยน link หลายไฟล์
Posted: Sat Oct 28, 2017 10:31 am
by snasui

ผมอ่านแล้วเข้าใจว่าเป็นการนำข้อมูลจากหลายไฟล์มาเรียงต่อกันในไฟล์เดียว สามารถใช้ VBA เข้ามาช่วยได้ครับ
ลองดูจาก Link นี้ครับ
wordpress/collect-data-multiple-files/
ลองนำ Code ไปปรับให้เข้ากับงานของตัวเองก่อน ติดตรงไหนแล้วค่อยถามกันครับ
Re: รบกวนปรึกษาครับ วิธีเปลี่ยน link หลายไฟล์
Posted: Sat Oct 28, 2017 10:33 am
by sngul
ได้ครับผม..ขอบคุณครับ..
Re: รบกวนปรึกษาครับ วิธีเปลี่ยน link หลายไฟล์
Posted: Sat Oct 28, 2017 12:36 pm
by sngul
ผมได้เข้าดู vdo แล้วครับ เนื่องจากข้อมูลที่ผมทำ มาจากหลาย cell หลาย sheet กระจายกันใน ไฟล์รายงาน ผมจึงต้องนำมาจัดเรียงก่อนโดยผมใช้การ link เข้ามาเก็บในแถวเดียว แล้วค่อยส่งไปจัดเก็บ ผมลองบันทึก มาโครเก็บข้อมูลให้ต่อท้ายกันได้แล้วเหลือ code เปลี่ยน link เป็นไฟล์อื่นไปเลื่อยๆจนหมดครับ กรุณาชี้แนะด้วยครับเสียเวลากับการ link ทีละ ไฟล์มากเลยตอนนี้..ขอบคุณครับ..
Re: รบกวนปรึกษาครับ วิธีเปลี่ยน link หลายไฟล์
Posted: Sat Oct 28, 2017 1:16 pm
by snasui

ตัวอย่าง Code ครับ
Code: Select all
Dim filePath As String
Dim path As String, oldStr As String
path = ThisWorkbook.path
filePath = Dir(path & "\" & "*.xlsx")
Do While filePath <> ""
Sheets("Sheet1").Select
Range("b3").Formula = "='" & path & "\[" & filePath & "]Sheet1'!b3"
Range("b3:e3").FillRight
Application.Goto Reference:="LinkSource"
Selection.Copy
Sheets("Sheet2").Select
Range("B2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
'Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
filePath = Dir()
Loop
Sheets("Sheet1").Select
Range("A1").Select
Application.CutCopyMode = False
Re: รบกวนปรึกษาครับ วิธีเปลี่ยน link หลายไฟล์
Posted: Sat Oct 28, 2017 1:35 pm
by sngul
ขอบคุณครับ ^_^
Re: รบกวนปรึกษาครับ วิธีเปลี่ยน link หลายไฟล์
Posted: Sat Oct 28, 2017 9:29 pm
by sngul
ขออนุญาตรบกวนอีกครับ ถ้าจะเขียน code ให้ ChangeLink Name:= _
"C:\ExcelTest\Fa1.xlsx"
"C:\ExcelTest\Fa2.xlsx", Type:=xlExcelLinks ให้ file Fa1 เปลี่ยนเป็น Fa2 ถึง Fa5 พอจะเป็นไปได้ไหมครับ ..
Code: Select all
ActiveWorkbook.ChangeLink Name:= _
"C:\ExcelTest\Fa1.xlsx", NewName:= _
"C:\ExcelTest\Fa2.xlsx", Type:=xlExcelLinks
Application.Goto Reference:="LinkSource"
Selection.Copy
Sheets("Sheet2").Select
Range("B2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
'Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
filePath = Dir()
Loop
Sheets("Sheet1").Select
Range("A1").Select
Application.CutCopyMode = False
Re: รบกวนปรึกษาครับ วิธีเปลี่ยน link หลายไฟล์
Posted: Sat Oct 28, 2017 10:24 pm
by snasui

ตัวอย่าง Code ครับ
Code: Select all
Dim arr1 As Variant, arr2 As Variant
Dim i As Integer
arr1 = Array("Fa1", "Fa2", "Fa3", "Fa4")
arr2 = Array("Fa2", "Fa3", "Fa4", "Fa5")
For i = 0 To UBound(arr1)
ActiveWorkbook.ChangeLink Name:= _
"C:\ExcelTest\" & arr1(i) & ".xlsx", NewName:= _
"C:\ExcelTest\" & arr2(i) & ".xlsx", Type:=xlExcelLinks
Application.Goto Reference:="LinkSource"
Selection.Copy
Sheets("Sheet2").Select
Range("B2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
'Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Sheet1").Select
Range("A1").Select
Application.CutCopyMode = False
Next i
Re: รบกวนปรึกษาครับ วิธีเปลี่ยน link หลายไฟล์
Posted: Sun Oct 29, 2017 5:16 am
by sngul
ขอบพระคุณมากครับผม code นี้ช่วยผมได้เยอะเลยครับ..ขอบคุณจริงๆ ครับ อาจารย์...
