VBA代号参考

时间:2017-09-21 11:54:32

标签: vba excel-vba worksheet excel

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

正确运作:

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

我要更改为以下内容 - “我的Excel文件中的第1阶段”= Sheet8

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

但是,在更改代码时,它会提供运行时错误438.

有人可以建议我如何克服这个问题或我的代码不正确的地方?

提前致谢

2 个答案:

答案 0 :(得分:2)

VBA中的工作表名称是codeName

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

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

但是,如果要从其他工作簿访问工作表,则必须遍历所有工作表才能找到它。见https://stackoverflow.com/a/25203416/7599798

答案 1 :(得分:-2)

您需要做的是:

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

您应该尝试不使用Sheet8,因为Excel WorkBook VBA项目中的工作表对象使用Sheet1Sheet2Sheet3等名称作为初始工作表名称