Excel VBA:重置电子表格计数

Excel VBA:重置电子表格计数,vba,excel,Vba,Excel,我有一个excel VBA宏,可以根据用户输入动态生成和删除电子表格。然而,当我打开VBA IDE时,似乎尽管我在创建/删除电子表格的子系统中命名电子表格,但总体计数仍在增加 例如,根据程序的执行程度,在当前项目的“Microsoft Excel对象”文件夹下,当前工作簿中的电子表格可能类似 Sheet101(Sheet3) Sheet103(Sheet2) Sheet104(Sheet1) 或 不管我删除剩下的部分,再加上一个,它仍然会在最后一个最高点的地方出现 我不知道这个宏会运行多少次,

我有一个excel VBA宏,可以根据用户输入动态生成和删除电子表格。然而,当我打开VBA IDE时,似乎尽管我在创建/删除电子表格的子系统中命名电子表格,但总体计数仍在增加

例如,根据程序的执行程度,在当前项目的“Microsoft Excel对象”文件夹下,当前工作簿中的电子表格可能类似

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

不管我删除剩下的部分,再加上一个,它仍然会在最后一个最高点的地方出现

我不知道这个宏会运行多少次,如果我能在生成的电子表格数量上重新设置这个恼人的计数,我会感觉更好,因为我不知道excel会在哪里切断我的连接。而且这很烦人

我的问题:

我想知道如何更改电子表格编号,或者至少相关的对象是什么


谢谢

以下是一些你可以尝试的想法

Sheets(x).Name = "Sheet" & x
或者(假设在本例中,“Sheet3”不存在:

Set Sheet3 = sheets.Add
Sheet3.name = "Sheet3"
这不仅仅是清理而不是重新设置

干杯,
Micéal

多亏了@dijkay关于代码名的建议,我找到了一些代码来实现这一点

ThisWorkbook.VBProject.VBComponents("Sheet1").name = "test"
将Sheet1的代码名更改为test,因此在Excel对象文件夹中,它将显示为test(Sheet1)


但是,此选项需要在运行宏的每个excel客户端中修改一些信任/安全设置,不幸的是,这不适合我的目的。您也可以通过更改(名称)手动更改该值通过属性窗口直接在IDE中创建属性。

如果您想知道,您看到的带有递增数字的工作表名称是工作表的“代码名”。我认为代码名是唯一的,并按创建顺序编制索引。您给出的底部代码只会更改工作簿底部“电子表格”选项卡中电子表格的名称。如@djikay所述,我希望更改电子表格“代码名”,即IDE中microsoft excel objects文件夹下括号外的名称。
ThisWorkbook.VBProject.VBComponents("Sheet1").name = "test"