snasui.com ยินดีต้อนรับ ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
จะแนะนำได้ตรงประเด็นก็ต่อเมื่อเห็นไฟล์ เห็นการวางตำแหน่งข้อมูล เห็นสิ่งที่ต้องการจะทำ การบอกอย่างกว้าง ๆ ว่าให้ดึงข้อมูลจากไฟล์ A ยังไฟล์ B ตามเงื่อนไข C ไม่น่าจะเกิดประโยชน์อะไรสักเท่าไรครับ
Sub Button5_Click()
Dim cur As Integer
Dim actWBName As String
actWBName = ActiveWorkbook.Name
With Application.FileDialog(msoFileDialogOpen)
.Title = "Select File"
.AllowMultiSelect = False
.Show
Workbooks.Open (.SelectedItems(1))
cur = Workbooks.Count
Workbooks(cur).Activate
ในส่วนนี้คือต้องการ copy ข้อมูลในไฟล์ที่เปิดมาใส่ไว้
เช่น copy คอลัม A ทั้งหมดในไฟล์ที่เพิ่งเปิดนี้ มาใส่ไว้ในไฟล์ปัจจุบันค่ะ
Workbooks(cur).Close
Workbooks(actWBName).Activate
End With
End Sub
Sub CopyValue()
Dim r As Range, lng As Long, rAll As Range
Dim i As Integer
lng = Rows.Count
For i = 2 To Workbooks.Count
With Workbooks(i).Worksheets(1)
Set rAll = .Range("A1", .Range("A" & lng).End(xlUp))
Set r = Workbooks("Book1").Worksheets("Sheet1") _
.Range("A" & lng).End(xlUp).Offset(1, 0)
rAll.Copy
r.PasteSpecial xlPasteValues
End With
Next
Application.CutCopyMode = False
End Sub
ขอบคุณค่ะ ^_^
หนูมีปัญหาใหม่แล้วตอนนี้ คือหนูเขียน code เพื่อcopy ข้อมูลจากคอลัมน์ A I K และ O
หนูต้องการแค่ 4 คอลัม แต่ว่ามันมาหมดเลยตั้งแต่คอลัม A ถึง O หนู กำหนด range ไม่ถูกรึป่าวค่ะ
Sub Openfile_Click()
Dim cur As Integer
Dim actWBName, a, b As String
actWBName = ActiveWorkbook.Name
With Application.FileDialog(msoFileDialogOpen)
.Title = "Select File"
.AllowMultiSelect = False
.Show
Workbooks.Open (.SelectedItems(1))
cur = Workbooks.Count
Workbooks(cur).Activate
a = Cells(1, 3).Value
Range("A:A,I:I,K:K,O:O").Select
Selection.Copy
Workbooks(cur).Close
Workbooks(actWBName).Activate
End With
Sub Openfile_Click()
Dim cur As Integer
Dim actWBName, a, b As String
actWBName = ActiveWorkbook.Name
With Application.FileDialog(msoFileDialogOpen)
.Title = "Select File"
.AllowMultiSelect = False
.Show
Workbooks.Open (.SelectedItems(1))
End With
cur = Workbooks.Count
Workbooks(cur).Activate
a = Cells(1, 3).Value
Range("A:A,I:I,K:K,O:O").Select
Selection.Copy
Workbooks(actWBName).Activate
Cells(4, 2).Value = a
Sheets("PO_overdue").Select
Columns("A:A").Select
ActiveSheet.Paste
Workbooks(cur).Close
End Sub