繁体   English   中英

Excel VBA:重置电子表格计数

[英]Excel VBA: Resetting spreadsheet count

我有一个excel VBA宏,可以根据用户输入动态生成和删除电子表格。 但是,当我打开VBA IDE时,尽管我将电子表格命名为创建/删除电子表格的子项,但总体数量仍在增加。

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

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

要么

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

无论我是否删除其余部分并添加其中一个,它仍然会从最后一个最高的位置继续。

我不知道该宏将被运行多少次,如果我可以对已经生成的电子表格的数量进行重新设置,我会感觉更好,因为我不知道可以肯定,excel会在哪里切断我。 另外,这很烦人。

我的问题:

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

谢谢!

感谢@dijkay对代码名称的建议,我发现了一些代码可以完成此任务。

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

会将Sheet1的代号更改为test,因此在Excel Objects文件夹中,它将显示为test(Sheet1)。

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

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

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

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

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

这比重新设置更干净

欢呼声,Micéal

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM