簡體   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