Page 1 of 1

การใช้คำสั่ง Paste

Posted: Sat Mar 29, 2014 3:23 am
by mnkiiz
ExcelApp.Workbooks.Open("C:\1234.xlsx")

ExcelApp.Worksheets("sheet1").Select()



ExcelApp.Worksheets("sheet1").Range("B3 : D10").Select()

ExcelApp.ActiveSheet.Copy()


ExcelApp.Workbooks.Open("C:\4567.xlsx")


ExcelApp.Worksheets("sheet1").Range("A3 : C10").Select()

ExcelApp.ActiveSheet.PasteSpecial()


ExcelApp.ActiveWorkbook.Save()
ExcelApp.Visible = True

การทำงานของ code คือ เปิดไฟล์ xlsx มา 1ไฟล์ เลือกข้อมูล R&C ที่ต้องการcopy คือ B3-D10
จากนั้น เลือกเปิดไฟล์มาอีก1ไฟล์ แล้วเลือกช่วงข้อมูล ที่ต้องการ Paste ลง คือ A3-A10
หนูเลือกใช้ คำสั่ง Select ในการเลือกช่วง ระหว่าง R&C
แต่เมื่อใช้คำสั่ง PasteSpecial ข้อมูลจาก ไฟล์ แรก ไม่สามารถย้ายข้อมูลไปไฟล์ที่ เปิดไฟล์สองได้

อยากทราบปัญหาของการ copy ข้อมูล ค่ะ

Re: การใช้คำสั่ง Paste

Posted: Sat Mar 29, 2014 7:28 am
by snasui
:D แนบไฟล์ตัวอย่างมาดูกันครับ

Code VBA กับ VB สิ่งที่ต่างกันอย่างหนึ่งคือตรง Method ใน VBA ไม่จำเป็นจะต้องตามด้วย () ครับ

การโพสต์ Code ให้แสดงเป็น Code เพื่อสะดวกในการอ่าน, การ Copy ไปทดสอบ ดูตัวอย่างจากที่นี่ครับ viewtopic.php?f=3&t=1187

Re: การใช้คำสั่ง Paste

Posted: Sat Mar 29, 2014 1:21 pm
by mnkiiz
ไฟล์ตัวอย่างค่ะ

Re: การใช้คำสั่ง Paste

Posted: Sat Mar 29, 2014 1:47 pm
by snasui
:D ไฟล์ที่แนบมาไม่ใช่ไฟล์ Excel ครับ

หมวดนี้เป็นหมวด Excel หากไม่ใช่ Excel, Access ให้ถามที่หมวด Other

กรณีเป็น Form, Code VBA ควรอยู่ในไฟล์ Excel ไม่ใช่แยกมาเป็นไฟล์ต่างหากแล้วให้ผู้ตอบ Import เองครับ

Re: การใช้คำสั่ง Paste

Posted: Sat Mar 29, 2014 2:07 pm
by snasui
:D จาก Code ด้านบน :roll: สามารถปรับเป็นด้านล่างได้ครับ

Code: Select all

Dim ExcelApp As Excel.Application
Dim b1 As Workbook
Dim b2 As Workbook

Set b1 = ExcelApp.Workbooks.Open("C:\1234.xlsx")
Set b2 = ExcelApp.Workbooks.Open("C:\4567.xlsx")

b1.Sheets("sheet1").Range("B3:D10").Copy b2.Sheets("sheet1").Range("A3:C10")

ExcelApp.Visible = True