Excel VBA:重置电子表格计数

我有一个Excel的VBAmacros,dynamic生成和删除基于用户input的电子表格。 但是,当我打开VBA IDE时,似乎尽pipe我在创build/删除它们的子命名中对我的电子表格进行了命名,但总数仍在增加。

例如,根据我的程序执行的程度,在当前项目的“Microsoft Excel Objects”文件夹下,当前工作簿中的电子表格可能看起来像

Sheet101(Sheet3) Sheet103(Sheet2) Sheet104(Sheet1) 

要么

 Sheet81(Inputs) Sheet83(Date Adjustment Interpolation) Sheet84(Pricing) Sheet85(Comparison) 

无论我删除其余的还是添加一个,它都会从最后一个中断的地方继续。

我不知道这个macros会运行多less次,如果能够重新生成这些已经生成的电子表格的数量,我会感觉好多了,因为我不知道肯定在哪里excel会削减我。 加上它只是烦人的。

我的问题:

我想知道如何改变电子表格号码,或者至less是相关的目的是为了这样做。

谢谢!

感谢@dijkay对代码名称的build议,我发现了一些代码来完成这个。

 ThisWorkbook.VBProject.VBComponents("Sheet1").name = "test" 

将更改Sheet1的代码名称进行testing,因此在Excel Objects文件夹中,它将显示为testing(Sheet1)例如。

然而,这个选项需要在运行macros的每个excel客户端中设置一些信任/安全设置,这不利于我的目的。 您还可以通过直接在IDE中通过属性窗口更改(Name)属性来手动更改该值。

这里有一些想法,你可以尝试…

 Sheets(x).Name = "Sheet" & x 

或者(假设在这个例子中'Sheet3'不存在:

 Set Sheet3 = sheets.Add Sheet3.name = "Sheet3" 

这比重新设置更清洁

欢呼声,Micéal