通过关闭电子表格的按钮调用函数时Excel 2013崩溃

时间:2015-08-11 09:31:09

标签: excel vba excel-vba crash

信息

我有一个用于打开/关闭电子表格的按钮。该按钮只是检查工作表是否可见(打开另一个电子表格后),然后调用特定功能。我有两个函数,可以打开工作簿,也可以关闭工作簿。 Excel仅在设置可见性或关闭工作簿时崩溃。如果我在编辑器中运行代码而不点击按钮,一切正常。

代码

Private Sub Main()

If Sheets("XYZ").Visible = True Then
Application.Run ("OFF")
Else
Application.Run ("ON")
End If

End Sub

Private Sub ON()

Dim Pfd As String
Pfd = ThisWorkbook.Path

Application.ScreenUpdating = False
Sheets("XYZ").Visible = True
Sheets("XYZ").Select

Application.DisplayAlerts = False
 SendKeys ("mso2013")
 SendKeys "~"
 SendKeys ("mso2013")
 SendKeys "~"
Application.DisplayAlerts = True

Workbooks.Open Filename:=Pfd & "\UserID\second.xlsx"

Workbooks("second.xlsx").Protect Structure:=False, Windows:=False, Password:="mso2013"
Workbooks("second.xlsx").Sheets("XYZ").Unprotect Password:="mso2013"
Windows("second.xlsx").Visible = True
Windows("second.xlsx").WindowState = xlMaximized

Application.ScreenUpdating = True
End Sub

Private Sub OFF()

Application.ScreenUpdating = False

Windows("second.xlsx").WindowState = xlNormal
Windows("second.xlsx").Visible = False
Workbooks("second.xlsx").Sheets("Stamm").Protect Password:="mso2013"
Workbooks("second.xlsx").Protect Structure:=True, Windows:=True, Password:="mso2013"
Workbooks("second.xlsx").Close savechanges:=True

Sheets("XYZ").Visible = xlVeryHidden
Sheets("ADMIN").Select     ' Admin is the sheet where the button is located
ActiveWindow.WindowState = xlMaximized
Application.ScreenUpdating = True

End Sub

我尝试过定时器,一个只调用OFF方法的按钮,没有保存就关闭等等......

问题在于它需要.visible = false,因此我无法移除此行(没有它应该像它应该的那样工作......)。

解决:

问题是我使用了(ActiveX)命令按钮而不是普通按钮。 Excel 2010没有出现任何问题。

0 个答案:

没有答案