存储在personal.xlsb中的excel选项卡中的xmlbutton

我正在尝试将button添加到我与我的大学共享的Personal.xlsb文件的用户界面中。

我试图使用http://www.rondebruin.nl/win/s2/win001.htm (用户界面编辑器添加自定义XML),但没有任何显示在我的主页上,所以我认为它可能必须是fileformat是personal.xlsb和xlsm或? 但是我听说xlsb加载方式比xlsm快,所以我不想更改文件格式。 任何想法如何在Excel中进行自定义菜单?

你必须做的是,

  1. 将您的personal.xlsb保存到personal.xlam(插件文件)
  2. 使用UI编辑器将xml添加到personal.xlam文件
  3. 将此编辑的personal.xlam文件复制到C:\Users\<username>\AppData\Roaming\Microsoft\AddIns\
  4. 现在打开excel。 转到“开发人员”选项卡并select“加载项”。 现在你的插件文件名应该在那里列出。 选中该框并单击确定。
  5. 重新打开Excel,你应该看到你的xml中提到的选项卡中的function区中的button

现在,无论何时打开excel,该button都将显示在function区中,直到您从Developer-> Add-ins中取消选中它为止

注意:现在,如果打开personal.xlsb,它将会抛出一个错误,因为excel从personal.xlam文件载入personal.xlsb中的相同过程。 所以之后删除personal.xlsb中的macros程序

迁移到xlam的问题是我无法获得本工作簿中的代码在启动时触发:

 Private Sub workBook_open() Dim ExcelArgs As String ExcelArgs = Environ("ExcelArgs") Call deleteMacros.deletePersonalFiles 'MsgBox ExcelArgs If UCase(ExcelArgs) = "CREO" Then Application.DisplayAlerts = False Call Creo.addNewPartToPartslist Application.DisplayAlerts = True End If If InStr(UCase(ExcelArgs), "DOKLIST") >= 0 Then Application.DisplayAlerts = False Call ProsjektListen.dbDumpDocOut(Split(ExcelArgs, ",")(1)) Application.DisplayAlerts = True End If Set myHelper = New Helper Call VersionControl.checkLatestVersion Call Menu.toolBar ' temp = Split(Parameters.CmdLineToStr, "\") ' MsgBox Len(temp(UBound(temp))) ' If Len(temp(UBound(temp))) > 15 Then ' 'Call Creo.addNewPartToPartslist ' End If ' On Error Resume Next Call filter.Unhide_All_Columns Sheets("List").Cells(1, 1).Select End Sub 

以及这个声明是无效的:

 Dim objRequest As MSXML2.XMLHTTP60 

最简单的可能是保持personal.xlsb和添加插件文件,只是button,但调用时按Personal!runMyMacro。