我有一个启用了 Excel 宏的工作簿,有 5 个工作表。其中一张被命名为“NC”,一张被命名为“SC”。我有部分代码将日期添加到这些工作表的名称中。
工作表(“NC”).Name =“NC”&替换(日期,“/”,“-”) 工作表(“SC”).Name =“SC”&替换(日期,“/”,“-”)
然后,如果单击重置按钮,我编写了一个代码将它们切换回以前的“NC”和“SC”名称,但这就是我遇到问题的地方。
工作表(2).Name =“NC” 工作表(3).Name =“SC”
Sheets(2).Name = "NC"工作正常 Sheets(3).Name = "SC"但是,会重命名 Sheet(4)
我认为无论您如何重新排列或重新排序工作表选项卡,这些工作表代码或工作表编号都不会改变。我不明白为什么它准确地重命名了 Sheets(2) 而不是 Sheets(3)。看下面我的项目资源管理器,它将 Sheets(4) 从“NCToday”重命名为“SC”。 Sheets(3) 在图片中显示“SC”,但因为这是手动重置的,但您可以看到排列,代码 Sheets(3).Name =“SC”不应该将 Sheets(4) 从“NCToday”重命名为“SC”。
最佳答案
Sheet(3)并不一定意味着sheet3
示例:
如果我在立即窗口中输入 ?worksheets(1).name
,我会得到以下结果:
Sheet2
请注意,系统查看 Excel 电子表格上的工作表顺序(Sheet2、Sheet1、Sheet3),而不是 VBA 项目中的顺序(Sheet1、Sheet2、Sheet3)
要重新命名工作表,您可能需要反转最初重命名它们的方法:
Sheets("SC" & Replace(Date, "/", "-")).Name = "SC"
关于vba - Excel VBA 重命名错误的工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16947621/