Excel VBA:重置电子表格计数

时间:2014-08-14 20:02:27

标签: excel vba excel-vba

我有一个excel VBA宏,可以根据用户输入动态生成和删除电子表格。但是,当我打开VBA IDE时,似乎虽然我在创建/删除它们的子设备中命名我的电子表格,但整体计数仍在增加。

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

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

或者

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

无论我删除其余的并添加一个,它仍会在最后一个最后一个停止的地方继续。

我不知道这个宏会运行多少次,如果我可以重置这个生成的电子表格的烦人数量,我会感觉好多了,因为我不知道不知道excel会让我失望。再加上它只是烦人的。

我的问题:

我想知道如何更改该电子表格编号,或者至少知道相关对象的用途。

谢谢!

2 个答案:

答案 0 :(得分:1)

感谢@dijkay对代码名称的建议,我找到了一些代码来实现这一目标。

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

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

但是,此选项需要在运行宏的每个单独的Excel客户端中使用某些信任/安全设置,不幸的是,这不适合我的目的。您还可以通过属性窗口直接在IDE中更改(名称)属性来手动更改值。

答案 1 :(得分:0)

以下是您可以尝试的一些想法......

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

或(假设在此示例中,'Sheet3'尚不存在:

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

这比重新设置更清晰

欢呼声, Micéal