在我为工作创建这个简单加载项的持续战斗中。
我现在决定使用命令栏内的命令按钮来打开和关闭提醒,这是我下面的代码。
Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
Dim cmbBar As CommandBar
Dim cmbControl As CommandBarControl
Set cmbBar = Application.CommandBars("Worksheet Menu Bar")
Set cmbControl = cmbBar.Controls.Add(Type:=msoControlPopup, temporary:=True) 'adds a menu item to the Menu Bar
With cmbControl
.Caption = "LLE Encryption Reminder" 'names the menu item
With .Controls.Add(Type:=msoControlButton) 'adds a dropdown button to the menu item
.Caption = "Enable Reminder" 'adds a description to the menu item
.OnAction = "'Enable'"
.FaceId = 343 'assigns an icon to the dropdown
End With
With .Controls.Add(Type:=msoControlButton) 'adds a dropdown button to the menu item
.Caption = "Disable Reminder" 'adds a description to the menu item
.OnAction = "'Disable'"
.FaceId = 342 'assigns an icon to the dropdown
End With
End With
End Sub
Private Sub Enable()
Response = True
End Sub
Private Sub Disable()
Response = False
End Sub
响应是一个布尔值,我已尝试各种方法使其工作,并且每次“无法运行宏”路径名时返回相同的错误。宏可能在此工作簿或所有宏中不可用可能会被禁用。
你如何克服这个问题?
同样在同一主题上,我是否还有某种标签显示响应状态?
这段代码在一个名为CExcelEvents的类模块中,在从这个网站上阅读一个新类模块中的应用程序事件后http://www.cpearson.com/Excel/AppEvent.aspx我的印象是我的插件的代码需要放在同一个类模块中,我是假设这个错了吗?在ThisWorkbook中,我有以下代码,用于使我的类模块工作。
Private XLApp As CExcelEvents
Private Sub Workbook_Open()
Set XLApp = New CExcelEvents
End Sub
答案 0 :(得分:1)
我通过将subs和public变量移动到一个单独的模块而不是类模块来解决这个问题,然后对我遇到的问题进行了排序。