[英]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.