0

我正在使用以下 VB.NET 代码在同一个工作簿中复制 Excel 工作表,但工作表名称每次都用 (2) 编写,这里有什么问题?

Dim inp as Integer
inp=Val(Textbox1.Text)

oWB = oXL.Workbooks.Open("D:\testfile.xlsx")
oSheet = oWB.Worksheets("base")
With oWB
   For i = 0 To inp - 1
     oSheet.Copy(Before:=.Worksheets(i + 1))
     With oSheet
       .Name = "INP" & i + 1
     End With
   Next
End With

如何摆脱工作表名称上的“(2)”?

谢谢

4

2 回答 2

1

只需引用您创建的工作表并重命名即可。你只需要行 Worksheets(i + 1).Name = "INP" & i + 1 见下文

Dim inp as Integer
inp=Val(Textbox1.Text)

oWB = oXL.Workbooks.Open("D:\testfile.xlsx")
oSheet = oWB.Worksheets("base")
With oWB
   For i = 0 To inp - 1
     oSheet.Copy(Before:=.Worksheets(i + 1))
     'reference and name worksheet
     Worksheets(i + 1).Name = "INP" & i + 1
   Next
End With
于 2012-12-17T18:29:29.227 回答
1

以下行:

     oSheet.Copy(Before:=.Worksheets(i + 1))

正在创建您指定的工作表的副本。当您创建工作表的副本时,excel 会添加(2)到名称中以防止出现重复的工作表名称。

例如,假设您有一张名为base您要复制的工作表。在处理了上面的那一行之后,你最终会得到一个名为的原始工作表base和一个名为base (2).

然后,接下来的几行代码:

     With oSheet
       .Name = "INP" & i + 1
     End With

只需重命名原始工作表。

试试这个而不是这两行:

     With oWB.Worksheets("base (2)")
       .Name = "INP" & i + 1
     End With
于 2012-12-17T18:23:16.587 回答