我使用以下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)”?
由于
答案 0 :(得分: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
答案 1 :(得分:1)
只需引用您创建的工作表并重命名即可。你只需要工作表(i + 1).Name =“INP”&我+ 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