为什么Excel工作表名称有(2)在里面?

我正在使用下面的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)”?

谢谢

以下行:

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

正在创build您指定的工作表副本。 当您创build工作表副本时,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 

只需参考您创build的工作表并重新命名即可。 你只需要行工作表(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