我有一个excel VBA宏,可以根据用户输入动态生成和删除电子表格。但是,当我打开VBA IDE时,似乎虽然我在创建/删除它们的子设备中命名我的电子表格,但整体计数仍在增加。
例如,根据我的程序执行的程度,在当前项目的“Microsoft Excel Objects”文件夹下,当前工作簿中的电子表格可能类似于
Sheet101(Sheet3)
Sheet103(Sheet2)
Sheet104(Sheet1)
或者
Sheet81(Inputs)
Sheet83(Date Adjustment Interpolation)
Sheet84(Pricing)
Sheet85(Comparison)
无论我删除其余的并添加一个,它仍会在最后一个最后一个停止的地方继续。
我不知道这个宏会运行多少次,如果我可以重置这个生成的电子表格的烦人数量,我会感觉好多了,因为我不知道不知道excel会让我失望。再加上它只是烦人的。
我的问题:
我想知道如何更改该电子表格编号,或者至少知道相关对象的用途。
谢谢!
答案 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