ฉันจะเพิ่มแผ่นงานหลังจากแผ่นงาน Excel ที่มีอยู่ทั้งหมดได้อย่างไร

ฉันต้องเพิ่มแผ่นงาน Excel ที่ส่วนท้ายของแผ่นงานปัจจุบันหมายเลข 3 อย่างไรก็ตาม เมื่อฉันรันโปรแกรมด้านล่าง ฉันจะได้แผ่นงานที่ตำแหน่งแรก ฉันจะแก้ไขปัญหานี้ได้อย่างไร?

โดยทั่วไปโปรแกรมจะคัดลอกข้อมูลจากสมุดงาน Excel หนึ่งไปยังสมุดงานอื่นซึ่งประกอบด้วยหลายแผ่น

รหัส:

Dim objXL,objWrkBk,objWrkSht,a,n
Set objfso=CreateObject("Scripting.FileSystemObject")
Set objXL=CreateObject("Excel.Application")
Set objWrkBk=objXL.Workbooks.Open("C:\learning\demo.xlsx")
m=objWrkBk.Worksheets.count
msgbox m
For n=1 to m
Set objWrkBk=objXL.Workbooks.Open("C:\learning\demo.xlsx")
Set objWrkSht=objWrkBk.Worksheets("Sheet"&n)
columncount = objWrkSht.usedrange.columns.count
rowcount = objWrkSht.usedrange.rows.count
For i=1 to rowcount
For j=1 to columncount
If   objWrkSht.cells(i,j).value <> "" Then
    a= objWrkSht.cells(i,j).value& "   "
End If
'Next
'Next
check=objfso.FileExists("C:\learning\demo1.xlsx")
If not check Then
    objXL.Workbooks.Add
    objXL.ActiveWorkbook.SaveAs("C:\learning\demo1.xlsx")
End If
Set objWrkBk1=objXL.Workbooks.Open("C:\learning\demo1.xlsx")
If n<=3 Then
    Set objWrkSht1=objWrkBk1.Worksheets("Sheet"&n)
End If
If n>3 Then
    objXL.Worksheets.add
    Set objWrkSht1=objWrkBk1.Worksheets("Sheet"&n)
End If

If   objWrkSht.cells(i,j).value <> "" Then
objWrkSht1.cells(i,j).value=a
objWrkBk1.Save
End If
Next
Next
Set objWrkSht=Nothing
Set objWrkBk=Nothing
Set objWrkSht1=Nothing
Set objWrkBk1=Nothing

Next
objXL.Quit
Set objXL=Nothing

person tjshah050291    schedule 01.01.2013    source แหล่งที่มา


คำตอบ (2)


คุณสามารถเพิ่มแผ่นงานในตำแหน่ง After กล่าวคือ โค้ดนี้จะเพิ่มแผ่นงานหลังแผ่นงานสุดท้าย (ระบุโดย objWrkBk.Sheets(objWrkBk.Sheets.Count)) โดยที่ objWrkBk.Sheets.Count) คือจำนวนแผ่นงานก่อนการบวก

Set objXL = CreateObject("Excel.Application")
Set objWrkBk = objXL.Workbooks.Add
Set objWrkSht = objWrkBk.Sheets.Add(, objWrkBk.Sheets(objWrkBk.Sheets.Count))
person brettdj    schedule 01.01.2013
comment
+ 1 ตรงและเรียบง่าย :) - person Siddharth Rout; 01.01.2013
comment
ขอบคุณ :) ยินดีที่ได้รับการตอบกลับอย่างรวดเร็ว - person tjshah050291; 01.01.2013

ดูเหมือนว่าคุณสมบัติของแผ่นงานเป็นแบบอ่านอย่างเดียว

ส่งกลับคอลเลกชันชีตที่แสดงถึงแผ่นงานทั้งหมดในสมุดงานที่ระบุ ออบเจ็กต์ชีตแบบอ่านอย่างเดียว

https://msdn.microsoft.com/en-us/library/office/ff835542(v=office.15).aspx

ในขณะที่ชีตเป็นของจริงที่คุณสามารถเพิ่มชีตแบบไดนามิกได้

คอลเลกชันของแผ่นงานทั้งหมดในสมุดงานที่ระบุหรือใช้งานอยู่

https://msdn.microsoft.com/en-us/library/office/ff193217(v=office.15).aspx

person George Birbilis    schedule 26.01.2015