Bagaimana cara menambahkan lembar kerja setelah semua lembar kerja Excel yang ada?

Saya perlu menambahkan lembar Excel di akhir lembar saat ini nomor 3. Namun, ketika saya menjalankan program di bawah ini, saya mendapatkan lembar di posisi pertama. Bagaimana saya bisa mengatasi ini?

Program ini pada dasarnya menyalin data dari satu buku kerja Excel ke buku kerja lainnya, yang terdiri dari beberapa lembar.

Kode:

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 sumber


Jawaban (2)


Anda dapat menambahkan sheet pada posisi After, yaitu kode ini menambahkan sheet setelah worksheet terakhir (disediakan oleh objWrkBk.Sheets(objWrkBk.Sheets.Count)) dimana objWrkBk.Sheets.Count) adalah jumlah sheet sebelum penambahan.

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 lurus dan sederhana :) - person Siddharth Rout; 01.01.2013
comment
Terima kasih :) senang mendapat respon cepat - person tjshah050291; 01.01.2013

sepertinya properti Lembar Kerja hanya bisa dibaca

Mengembalikan koleksi Lembar yang mewakili semua lembar kerja di buku kerja yang ditentukan. Objek Spreadsheet yang hanya dapat dibaca.

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

sedangkan Sheets adalah aslinya dimana Anda juga dapat menambahkan Sheets secara dinamis

Kumpulan semua lembar dalam buku kerja yang ditentukan atau aktif.

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

person George Birbilis    schedule 26.01.2015