VBA代号参考

VBA Codename Reference

我希望通过代号引用我的工作表作为更长 vba 代码的一部分 - 我当前的代码是:

工作正常:

If wb.Sheets("stage 1").Visible = xlVeryHidden Or wb.Sheets("stage 1").Visible = xlHidden Then wb.Sheets("Stage 1").Visible = True

我想更改为以下 - "Stage 1" = 我的 excel 文件中的 Sheet8

If wb.Sheet8.Visible = xlVeryHidden Or wb.Sheet8.Visible = xlHidden Then wb.Sheet8.Visible = True

但是,在更改代码后会出现运行时错误 438。

有人可以告诉我如何解决这个问题或我的代码哪里不正确吗?

提前致谢

您需要做的是使用:

    Dim Sht8 As Worksheet
    Set Sht8 = wb.Sheets("stage 1")

您应该尽量不要使用 Sheet8,因为 Excel WorkBook VBA 项目中的 sheet 对象正在使用 Sheet1Sheet2Sheet3 初始 sheet 名称。

VBA中的sheet的名字是codeName

如果 sheet 它是 ThisWorkbook 的一部分(即您编写代码所在的工作簿),您可以在代码中访问它,就像它是一个变量一样(删除 wb.)

   Sheet8.Visible = xlVeryHidden Or Sheet8.Visible = xlHidden Then Sheet8.Visible = True

但是,如果您想从不同的工作簿访问 sheet,则必须遍历所有 sheet 才能找到它。参见