Page 1 of 1
การ import ข้อมูลจากไฟล์ที่เปิดล่าสุด
Posted: Thu Dec 27, 2012 12:59 pm
by bank9597
สวัสดีเพื่อนสมาชิกทุกท่าน วันนี้ขอรบกวนเรื่องของการเขียนโค๊ด vba
โจทย์คือ
1. ไฟล์ Test จะเป็นไฟล์หลัก ใช้คัดลอกข้อมูลใน Sheet1 ของไฟล์ที่เปิดล่าสุด ตัวอย่างเช่น เปิดไฟล์ Test แล้ว ตามด้วยไฟล์ Book1 คำสั่งจะสั่งบันทึกข้อมูลในไฟล์ Book1 ชีท Sheet1 มาลงในชีท Database ไฟล์ Test
2. ปุ่มสัง Import ข้อมูลอยู่ในชีท Import ไฟล์ Test
ผมได้แนบไฟล์พร้อมโค๊ดมาด้วยแล้ว รบกวนปรับโค๊ดให้หน่อยครับ ขอบคุณครับ
Re: การ import ข้อมูลจากไฟล์ที่เปิดล่าสุด
Posted: Thu Dec 27, 2012 1:08 pm
by snasui

จากไฟล์ที่แนบมา ลองดูตัวอย่าง Code ตามด้านล่างครับ
Code: Select all
Sub Import_Data()
Dim strName As String
Dim rSource As Range
strName = "Book1.xlsx"
Windows(strName).Activate
With Sheets("Sheet1")
Set rSource = .Range("A2", .Range("F" & Rows.Count))
End With
rSource.Copy
Windows("Test.xlsm").Activate
Sheets("Database").Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub
Re: การ import ข้อมูลจากไฟล์ที่เปิดล่าสุด
Posted: Thu Dec 27, 2012 1:30 pm
by snasui
bank9597 wrote:ไฟล์ Test จะเป็นไฟล์หลัก ใช้คัดลอกข้อมูลใน Sheet1 ของไฟล์ที่เปิดล่าสุด ตัวอย่างเช่น เปิดไฟล์ Test แล้ว ตามด้วยไฟล์ Book1 คำสั่งจะสั่งบันทึกข้อมูลในไฟล์ Book1 ชีท Sheet1 มาลงในชีท Database ไฟล์ Test
สามารถปรับ Code เป็นตามด้านล่างครับ
Code: Select all
Sub Import_Data0()
With Workbooks(Workbooks.Count).Sheets("Sheet1")
.Range("A2", .Range("F" & Rows.Count).End(xlUp)).Copy _
Workbooks("Test.xlsm").Sheets("Database").Range("A2")
End With
End Sub
Re: การ import ข้อมูลจากไฟล์ที่เปิดล่าสุด
Posted: Thu Dec 27, 2012 1:48 pm
by bank9597
snasui wrote:bank9597 wrote:ไฟล์ Test จะเป็นไฟล์หลัก ใช้คัดลอกข้อมูลใน Sheet1 ของไฟล์ที่เปิดล่าสุด ตัวอย่างเช่น เปิดไฟล์ Test แล้ว ตามด้วยไฟล์ Book1 คำสั่งจะสั่งบันทึกข้อมูลในไฟล์ Book1 ชีท Sheet1 มาลงในชีท Database ไฟล์ Test
สามารถปรับ Code เป็นตามด้านล่างครับ
Code: Select all
Sub Import_Data0()
With Workbooks(Workbooks.Count).Sheets("Sheet1")
.Range("A2", .Range("F" & Rows.Count).End(xlUp)).Copy _
Workbooks("Test.xlsm").Sheets("Database").Range("A2")
End With
End Sub

ทำไมโค๊ดถึงสั้นได้ขนาดนี้ ผมเขียนมาเสียยาวเลย

แสดงผลได้รวดเร็วมากครับ ขอบคุณอาจารย์มากครับ ผมจะเอาไปปรับใช้ต่อไปครับ