Page 1 of 1

VBAเรียกไฟล์ปลายทาง และcopy ข้าม workbook พร้อมทั้ง SAVEด้วย

Posted: Sun Jan 19, 2020 10:17 pm
by lotto009
เรียนอาจาร์ยครับ
ผมต้องการ copy ข้าม workbookนะครับ
ขั้นตอนคือ
1.เรียกไฟล์ปลายทางเปิดไฟล์ ชื่อ OUTPUTFILE.xlsx ใน path Documents ครับ
2.ทำการ .Copy&Past
-Workbooks("INPUTFILE.xlsm").Worksheets("T1").copy = Workbooks("OUTPUTFILE.xlsx").Worksheets("T1").PasteSpecial
-Workbooks("INPUTFILE.xlsm").Worksheets("T2").copy = Workbooks("OUTPUTFILE.xlsx").Worksheets("T1").PasteSpecial
-Workbooks("INPUTFILE.xlsm").Worksheets("T3").copy = Workbooks("OUTPUTFILE.xlsx").Worksheets("T1").PasteSpecial
3.ทำการSAVE ไฟล์ Workbooks("INPUTFILE.xlsx").Save
4.ทำการSAVE ไฟล์ Workbooks("OUTPUTFILE.xlsm").Save
ปัญหาคือ
1.ผมเรียกไฟล์ ชื่อ OUTPUTFILE.xlsx ใน path Documents ไม่มาครับ
2.ไม่สามารถSAVEทัั้ง สองไฟล์ได้
3.การcopy &past ผมทำได้สำเร็จตาม code ครับ ขอ1 และ ข้อ2ไม่ทำงาน
ผมแนบCodeมาให้ด้วยนะครับ
ขอบพระคุณมากครับ
อาร์ต
---------------

Code: Select all

Private Sub CommandButton2_Click()

Const TARGETWORKBOOK  As String = "OUTPUTFILE.xlsx"
Dim wbkTarget           As Workbook
Set wbkTarget = Workbooks.Open(FileName:=ThisWorkbook.Path & "\" & TARGETWORKBOOK)


Dim wsCopy1 As Worksheet 'INPUTFILE
Dim wsCopy2 As Worksheet 'INPUTFILE
Dim wsCopy3 As Worksheet 'INPUTFILE

Dim wsDest1 As Worksheet 'OUTPUTFILE
Dim wsDest2 As Worksheet 'OUTPUTFILE
Dim wsDest3 As Worksheet 'OUTPUTFILE

  Set wsCopy1 = Workbooks("INPUTFILE.xlsm").Worksheets("T1")
  Set wsCopy2 = Workbooks("INPUTFILE.xlsm").Worksheets("T2")
  Set wsCopy3 = Workbooks("INPUTFILE.xlsm").Worksheets("T3")


  Set wsDest1 = Workbooks("OUTPUTFILE.xlsx").Worksheets("T1")
  Set wsDest2 = Workbooks("OUTPUTFILE.xlsx").Worksheets("T2")
  Set wsDest3 = Workbooks("OUTPUTFILE.xlsx").Worksheets("T3")
  
  wsCopy1.Range("A:Z").Copy
  wsDest1.Range("A:Z").PasteSpecial
  wsCopy2.Range("A:Z").Copy
  wsDest2.Range("A:Z").PasteSpecial
  wsCopy3.Range("A:Z").Copy
  wsDest3.Range("A:Z").PasteSpecial
  
  Workbooks("INPUTFILE.xlsx").Save
  Workbooks("OUTPUTFILE.xlsm").Save
  

End Sub

Re: VBAเรียกไฟล์ปลายทาง และcopy ข้าม workbook พร้อมทั้ง SAVEด้วย

Posted: Mon Jan 20, 2020 6:53 am
by puriwutpokin
แนบไฟล์​ตัวอย่างมาด้วยครับ​จะได้ทดสอบได้ครับ

Re: VBAเรียกไฟล์ปลายทาง และcopy ข้าม workbook พร้อมทั้ง SAVEด้วย

Posted: Mon Jan 20, 2020 10:07 am
by lotto009
ไฟล์แนบครับผม

Re: VBAเรียกไฟล์ปลายทาง และcopy ข้าม workbook พร้อมทั้ง SAVEด้วย

Posted: Mon Jan 20, 2020 12:58 pm
by lotto009
ขอบพระคุณมากครับ
ได้แล้วครับไล่ดูคำตอบเก่าเก่าของอาจาร์ย บางทีผมก็สับสนตัวเองเหมือนกัน

Code: Select all

Private Sub CommandButton2_Click()
Dim wbkTarget As New Workbook
Set wbkTarget = Workbooks.Open(fileName:=ThisWorkbook.Path & "\OUTPUTFILE.xlsx")

Dim wsCopy1 As Worksheet 'INPUTFILE
Dim wsCopy2 As Worksheet 'INPUTFILE
Dim wsCopy3 As Worksheet 'INPUTFILE

Dim wsDest1 As Worksheet 'OUTPUTFILE
Dim wsDest2 As Worksheet 'OUTPUTFILE
Dim wsDest3 As Worksheet 'OUTPUTFILE

  Set wsCopy1 = Workbooks("INPUTFILE.xlsm").Worksheets("T1")
  Set wsCopy2 = Workbooks("INPUTFILE.xlsm").Worksheets("T2")
  Set wsCopy3 = Workbooks("INPUTFILE.xlsm").Worksheets("T3")


  Set wsDest1 = Workbooks("OUTPUTFILE.xlsx").Worksheets("T1")
  Set wsDest2 = Workbooks("OUTPUTFILE.xlsx").Worksheets("T2")
  Set wsDest3 = Workbooks("OUTPUTFILE.xlsx").Worksheets("T3")
  
  wsCopy1.Range("A:Z").Copy
  wsDest1.Range("A:Z").PasteSpecial
  wsCopy2.Range("A:Z").Copy
  wsDest2.Range("A:Z").PasteSpecial
  wsCopy3.Range("A:Z").Copy
  wsDest3.Range("A:Z").PasteSpecial
  
  ActiveWorkbook.Save
  ActiveWorkbook.Close

End Sub

Re: VBAเรียกไฟล์ปลายทาง และcopy ข้าม workbook พร้อมทั้ง SAVEด้วย

Posted: Mon Jan 20, 2020 7:44 pm
by puriwutpokin
ปรับส่วนนี้ดูครับ

Code: Select all

'Other code...    
    Workbooks(TARGETWORKBOOK).Save
    ThisWorkbook.Save
'Other code...