【发布时间】:2016-09-21 13:08:33
【问题描述】:
背景
我正在开发一个库存管理和员工时间跟踪工具,我在其中创建了几个选项卡,即登录面板、界面、参考选项卡等。 在此工具文件的 thisworkbook 模块的 VBA 编辑器中,我在 workbook_beforeClose 事件中编写了一个代码,该代码将隐藏所有工作表并使登录面板工作表在用户尝试关闭它时关闭之前可见。这是代码:-
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
sht_LoginPanel.Visible = xlSheetVisible
For Each sht In ThisWorkbook.Sheets
If sht.Name <> "Login Panel" Then
sht.Visible = xlSheetHidden
End If
Next sht
Application.ScreenUpdating = True
End Sub
问题
上面这段代码是在一台装有 MS Excel 2010 的计算机上编写的,一切正常。但是,当我在装有 MS Excel 2013 的计算机上使用此工具时,上面相同的代码在第 5 行 (如果 sht.Name ...) 上出现错误。 我发现的另一件令人惊奇的事情是,For each 循环的第一次迭代不会发生错误......它仅在到达 Next sht 命令行然后返回到第 5 行时才会发生。
谁能帮我解决这个错误并解释这里出了什么问题.... Excel VBA 2010 和 2013 之间是否存在任何兼容性问题。最后一件事是我还看到 ListView 控件在 2013 年不起作用但是它在 excel 2010 中运行良好。
请帮忙....
问候, 普雷曼舒
【问题讨论】:
-
任何答案都解决了您的问题吗?