求助:Excel Workbook_Open事件VBA实现按文件名控制工作表可见性
问题解决:根据文件名控制Excel工作表可见性
原代码问题分析
原代码中Wb对象未定义,导致运行报错。Workbook_Open事件属于当前工作簿,直接使用ThisWorkbook即可引用当前工作簿对象。
修正后的VBA代码
Private Sub Workbook_Open() ' 匹配包含扩展名的完整文件名 If ThisWorkbook.Name = "CI Q (New_User).xlsm" Then Sheets("YourWeek").Visible = True Else Sheets("YourWeek").Visible = False End If End Sub
补充兼容方案
如果需要忽略文件扩展名(比如兼容.xls/.xlsm等不同格式),可以用以下代码截取不含扩展名的文件名进行判断:
Private Sub Workbook_Open() Dim fileNameWithoutExt As String ' 提取不含扩展名的文件名 fileNameWithoutExt = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1) If fileNameWithoutExt = "CI Q (New_User)" Then Sheets("YourWeek").Visible = True Else Sheets("YourWeek").Visible = False End If End Sub
注意:代码必须放在ThisWorkbook模块中(而非普通模块),否则Workbook_Open事件无法触发。
内容的提问来源于stack exchange,提问作者IrishChristof
相关产品推荐
相关产品推荐

