我希望通过代号作为更长的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.
有人可以建议我如何克服这个问题或我的代码不正确的地方?
提前致谢
答案 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项目中的工作表对象使用Sheet1
,Sheet2
和Sheet3
等名称作为初始工作表名称