无法运行宏…;宏可能在此工作簿VBA中不可用

无法运行宏…;宏可能在此工作簿VBA中不可用,vba,excel,error-handling,command,Vba,Excel,Error Handling,Command,我手边的问题是,为什么这些用于创建菜单命令按钮的宏可以在我的个人计算机(Excel 2010/2016)上工作,但生成宏在我的工作计算机上可能不可用。我唯一的想法是,它与我的工作笔记本电脑的位/配置有关,与旧VBA库相关的一些编译器问题,缺少作业参考,以及与私人潜艇相关的一些随机问题 此工作簿中的宏。编码在此工作簿、模块和用户表单(命令按钮)中完成。VBA本质上是在Excel功能区上编程一个新按钮(菜单命令),当您单击该按钮时,将生成一个用户表单。但是,VBA错误不会发生这种情况。总的来说,编码

我手边的问题是,为什么这些用于创建菜单命令按钮的宏可以在我的个人计算机(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
模块

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
用户表单点击代码

Option Explicit



Private Sub btnOne_Click()
   Application.FindFile



End Sub
(a) 个人计算机和工作计算机上使用的工作簿是相同的,还是相同的代码?如果只是相同的代码,您是否检查了其他代码设置?例如,当您谈到“用户表单点击代码”时,它实际上是在一个名为“用户表单”的表单中还是在“frmMain”中?等等。(b)您何时收到错误?单击“无”时?还是在打开工作簿时?或者在单击菜单上的按钮时?或者在其他时间?(A)两个系统上的工作簿编码大约100%相同。唯一的区别是“打开工作簿”过程中的文件名。(这不是当前的问题)——UserForm(Name)被重命名为FrmMain。(B) 找不到错误宏--在单击带有标题显示窗体的实际菜单命令按钮时发生。问题是用户表单不会填充到屏幕上。这让我相信这和计算机的位类型有关,或者VBA不能处理私有sub。也许是别的原因。我很想知道你的想法。(a)个人电脑和工作电脑上使用的是同一个工作簿,还是相同的代码?如果只是相同的代码,您是否检查了其他代码设置?例如,当您谈到“用户表单点击代码”时,它实际上是在一个名为“用户表单”的表单中还是在“frmMain”中?等等。(b)您何时收到错误?单击“无”时?还是在打开工作簿时?或者在单击菜单上的按钮时?或者在其他时间?(A)两个系统上的工作簿编码大约100%相同。唯一的区别是“打开工作簿”过程中的文件名。(这不是当前的问题)——UserForm(Name)被重命名为FrmMain。(B) 找不到错误宏--在单击带有标题显示窗体的实际菜单命令按钮时发生。问题是用户表单不会填充到屏幕上。这让我相信这和计算机的位类型有关,或者VBA不能处理私有sub。也许是别的原因。我很想知道你的想法。