รวม .xls หลายๆไฟล์ เป็น ไฟล์ เดียวกัน

   
มีใครพอทราบบ้างครับ พอดีว่าผมส่งออกไฟล์สกุล .xls ออกมา 3 ไฟล์ครับ หากผมต้องการที่จะ รวมให้มันอยู่ในไฟล์เดียวกัน แต่คนล่ะชีทอะครับ ไม่ทราบว่ามีใครพอจะทราบไม๊ครับ fox 2.5 น่ะครับ
ถ้าไม่มีวิธีก็ไม่เป็นไรครับ...

23 มี.ค. 49 เวลา 16:35:00 น. --> 61.90.192.46, ,
   
   
เงียบ...

24 มี.ค. 49 เวลา 8:17:55 น. --> 61.90.192.46, w
  
   
ยังไม่เคยทำครับ และตอนนี้ไม่มี fox for dos ด้วยสิ ถ้าจะอิงคำสั่ง VFP9 ไม่แน่ใจว่าจะ match กับ fox for dos หรือเปล่า
ต้น
24 มี.ค. 49 เวลา 9:49:10 น. --> 203.107.156.179
  
   
ถ้าไม่มี fox 2.5 ขอเป็น vfox ก็ได้ครับ เดี๋ยวผมจะลองดู

24 มี.ค. 49 เวลา 10:21:43 น. --> 61.90.192.46, w
  
   
ที่เงียบอาจเป็นเพราะว่าไม่รู้อ่ะคับ
9ho
24 มี.ค. 49 เวลา 11:02:53 น. --> 203.146.139.229
  
   
ด้วย Fox 2.5 อย่างเดียวผมตอบไม่ได้
แต่ถ้าใช้ตัวช่วยก็มี 2 ทางเลือก

1. code ใน vfp จัดการให้เป็นรูปแบบ excel builed exe แล้วใช้ foxdos เรียกใช้
2. code ใน Excel-vba แล้วใช้ foxdos เรียกใช้
ritken
24 มี.ค. 49 เวลา 11:53:49 น. --> 202.44.70.50, w
  
   
ขั้นตอนการเตรียม
USE "c:\program files\microsoft visual foxpro 8\browser.dbf" SHARED
COPY TO c:\temp\TestExcel1.xls TYPE XLS
USE "c:\program files\microsoft visual foxpro 8\foxcode.dbf" SHARED
COPY TO c:\temp\TestExcel2.xls TYPE XLS
USE "c:\program files\microsoft visual foxpro 8\genhtml.dbf" SHARED
COPY TO c:\temp\TestExcel3.xls TYPE XLS
USE

ขั้นตอนการทดสอบเปิดและเก็บ
loExcel=CREATEOBJECT("Excel.Application")
loExcel.Visible=.T.
loExcel.Workbooks.Add() && Add New Workbook
loWorkboox1 = loExcel.ActiveWorkbook
loSheet1=loWorkboox1.Sheets(1)
loSheet2=loWorkboox1.Sheets(2)
loSheet3=loWorkboox1.Sheets(3)

loExcel.Workbooks.Open("c:\temp\TestExcel1.xls") && เปิด workbook ใหม่
loWorkboox2 = loExcel.ActiveWorkbook
loSheet4 = loWorkboox2.Sheets(1)

loExcel.Workbooks.Open("c:\temp\TestExcel2.xls") && เปิด workbook ใหม่
loWorkboox3 = loExcel.ActiveWorkbook
loSheet5 = loWorkboox3.Sheets(1)

loExcel.Workbooks.Open("c:\temp\TestExcel3.xls") && เปิด workbook ใหม่
loWorkboox4 = loExcel.ActiveWorkbook
loSheet6 = loWorkboox4.Sheets(1)

loSheet4.Range('a1','iv65536').Copy() && Copy ทั้งหมด
loSheet1.paste() && Paste ลง
loSheet1.Name=loSheet4.Name && เปลี่ยนชื่อ

loSheet5.Range('a1','iv65536').Copy() && Copy ทั้งหมด
loSheet2.paste() && Paste ลง
loSheet2.Name=loSheet5.Name && เปลี่ยนชื่อ

loSheet6.Range('a1','iv65536').Copy() && Copy ทั้งหมด
loSheet3.paste() && Paste ลง
loSheet3.Name=loSheet6.Name && เปลี่ยนชื่อ

loWorkboox1.SaveAs("c:\temp\TestExcel4.xls") && บันทึกชื่อ File ใหม่
loWorkboox1.Close() && ปิดมันซะ
loExcel.Quit() && Quit Application
loExcel = null && Clear Object

ลองเอาไปประยุกต์ใช้ดูครับ
joe
24 มี.ค. 49 เวลา 14:23:11 น. --> 70.187.241.243,
  
   
พอดีติดงานครับ ต่อเลย
ผมใช้ทางเลือกที่สองดีกว่า ไม่ต้อง compile vfp

หลังจาก export excel file เรียบร้อยแล้ว
เพิ่ม code ใน foxdos เพื่อเรียก excel
RUN c:\progra~1\micros~1\office10\excel.exe c:\test\book1.xls

ต่อมาก็ในส่วนของ VBA หละ

เปิด excel กด alt+f11

coding ลงไปในส่วนของ workbook_open() ตามภาพครับ

ritken
24 มี.ค. 49 เวลา 14:38:50 น. --> 202.44.70.51, w
  
   
พึ่งเห็นของคุณ Joe @_@
ritken
24 มี.ค. 49 เวลา 14:40:48 น. --> 61.90.165.50, w
  
   
ใส่ code ลงไปดังนี้
Excel.Application.Visible = False ' ซ่อน excel
book1 = ActiveWorkbook.Name
Workbooks.Open Filename:="C:\temp\file1.xls" ' file 1 ที่ export จาก foxdos
file1 = ActiveWorkbook.Name
Workbooks.Open Filename:="C:\temp\file2.xls" ' file 2 ที่ export จาก foxdos
file2 = ActiveWorkbook.Name
Workbooks.Open Filename:="C:\temp\file3.xls" ' file 3 ที่ export จาก foxdos
file3 = ActiveWorkbook.Name
Workbooks.Add ' เพิ่ม work book ใหม่
ActiveWorkbook.SaveAs Filename:="C:\temp\output.xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False ' Save file ที่ต้องการ
output = ActiveWorkbook.Name
Workbooks(file1).Sheets(1).Move Before:=Workbooks("output.xls").Sheets(1) ' copy file1 ไปยัง file ที่ต้องการ
Workbooks(file2).Sheets(1).Move Before:=Workbooks("output.xls").Sheets(2) ' copy file2 ไปยัง file ที่ต้องการ
Workbooks(file3).Sheets(1).Move Before:=Workbooks("output.xls").Sheets(3) ' copy file3 ไปยัง file ที่ต้องการ
Workbooks(book1).Save ' save file VBA
Workbooks(output).Save ' save file output
Excel.Application.Quit ' ปิด excel


หลังจากนั้น Save excel c:\temp\book1.xls (เพราะใน foxdos เรียก excel file c:\temp\book1.xls )

เลือกใช้งานได้เลยครับ คุณ Joe วิธีแรก, ผมวิธีสอง
ritken
24 มี.ค. 49 เวลา 14:52:31 น. --> 61.90.165.50, w
  
   
ลืมอีกข้อครับถ้า Excel Disable Marcros จะใช้ไม่ได้ครับ
ritken
24 มี.ค. 49 เวลา 15:03:11 น. --> 202.44.70.52, w
  
ขอเชิญร่วมตอบคำถามครับ
 
ผู้ตอบ :
รหัสผ่าน :
รูปภาพ :
คำตอบ :