excel - 如何在所有现有 Excel 工作表之后添加工作表?

标签 excel vbscript

我需要在当前工作表编号 3 的末尾添加一个 Excel 工作表。但是,当我运行下面的程序时,我在第一个位置得到了一个工作表。我该如何解决这个问题?

该程序基本上是将数据从一个 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

最佳答案

您可以在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))

关于excel - 如何在所有现有 Excel 工作表之后添加工作表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14109102/

相关文章:

mysql - 修复 'Expected end of statement'

excel - 获取数据透视表中组总数的百分比

vba - Excel 自动对具有相同名称的工作表进行编号

powershell - Powershell 是一种足够成熟的技术供企业使用吗?

excel - Application.WorksheetFunction.Find 的作用是什么?

excel - 从另一个工作簿运行宏

datetime - 使用当前区域设置 <> 美国将日期字符串值从美国转换为 native 日期?

regex - 以字母开头,必须包含字母和数字

javascript - 从 XSLT 调用函数错误 : Namespace does not contain any functions

security - 在散列之前对加盐密码进行加扰。好主意?