首页 > 解决方案 > 在 vba 代码中自动更改工作表编号

问题描述

我有一个启用 VBA 的 excel 工作簿,它有 20 多张工作表。现在 VBA 中的代码使用工作表编号来调用工作表。

现在我将不得不删除一张使所有代码无法使用的工作表,因为如果我删除一张工作表编号会更改。

示例Worksheets(10).Activate将指向另一个工作表,因为我将删除第三个工作表

我对此很陌生,所以最快的方法是什么,而不是手动更改代码中的工作表编号。

标签: excelvba

解决方案


请注意,有 3 种方法可以访问工作表……</p>

  1. 按其在标签栏中的位置:在标签栏中
    Worksheets(10)给出 10ᵗʰ 工作表。请注意,如果您还有例如图表表,则编号不同Sheets(10),则可能是完全不同的表。

  2. 通过其可见的标签栏名称:
    Worksheets("Sheet10")

  3. 通过其 VBA 名称:
    Sheet10
    请注意,VBA 名称只能在 VBA 编辑器的项目窗口中更改。

请注意Worksheets(10)Worksheets("Sheet10")Sheet10可以是完全不同的工作表,因为它们使用 3 个完全独立的命名系统。

使用哪一个高度取决于您实际尝试做什么。一般来说,没有最佳选择,它们每个都有其优点和缺点。


此外,我强烈建议不要使用.Activateand .Select。因此请阅读如何避免在 Excel VBA 中使用 Select


推荐阅读