我的问题是为什么这些用于创建菜单命令按钮的宏可以在我的个人计算机上运行(Excel 2010/2016),但生成宏可能不是我工作中的可用消息。我唯一的想法是它与我的工作笔记本电脑的位/配置相关,一些与旧VBA库相关的各种编译器问题,错过了分配引用,&与私人潜艇相关的随机事物。
本工作簿中的宏。编码在本工作手册,模块和&用户表单(命令按钮)。 VBA实际上是在Excel功能区(菜单命令)上编写一个新按钮,当您单击它时,将生成一个用户表单。但是,VBA错误不会发生这种情况。总的来说,编码非常合理。因此,我相信我得到的错误与系统/配置项有关。
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
RemoveMenuItem
End Sub
Private Sub Workbook_Open()
AddMenuItem
'frmMain.Show
End Sub
MODULE
Option Explicit
Sub Selectfile()
Dim wb As Workbook
Set wb = Workbooks.Open("C:\Users\brian\Desktop\practice file2.xlsm")
End Sub
Sub AddMenuItem()
Dim cmbWorkSheetMenuBar As CommandBar
Dim cmbControl As CommandBarControl
Set cmbWorkSheetMenuBar = Application.CommandBars("Worksheet Menu Bar")
Set cmbControl = cmbWorkSheetMenuBar.Controls.Add(Type:=msoControlButton, temporary:=True) 'adds a menu item to the Menu Bar
With cmbControl
.Caption = "Show Form" 'names the menu item
.OnAction = "ShowTheForm" 'runs the specified macro
.FaceId = 1098 'assigns an icon to the dropdown
End With
End Sub
Sub RemoveMenuItem()
On Error Resume Next 'in case the menu item has already been deleted
Application.CommandBars("Worksheet Menu Bar").Controls("Show Form").Delete 'delete the menu item
End Sub
Sub ShowTheForm()
frmMain.Show
End Sub
UserForm点击代码
Option Explicit
Private Sub btnOne_Click()
Application.FindFile
End Sub