vba - Excel VBA 重命名错误的工作表

标签 vba excel excel-2007

我有一个启用了 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 List

最佳答案

Sheet(3)并不一定意味着sheet3

示例: enter image description here

如果我在立即窗口中输入 ?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/

相关文章:

vba - 使用 Excel 中定义的范围,替换打开的 Word 文档中的 [文本]

excel - 无法通过 excel vba 自动填充网站的标签

excel - 微软 Excel : Formula in MS Excel

c# - 如何从 excel 在 C# 中填充数据表

excel - 在特殊条件下将一系列单元格粘贴到相同大小的目标范围?

visual-studio-2010 - 使用 VBA 和 Adob​​e PDF 阅读器控件复制选定的文本

excel - Delphi 6 - 从 Delphi 应用程序创建 Excel 图表 - 数据和图表在同一页面上

excel-2007 - Excel 2007 - 条件格式 - 比较同一列中的两个单元格?

vba - IIS 不信任对 Visual Basic 项目的编程访问

vba - Excel函数限制8192个字符