【问题标题】:What makes Custom Ribbon callbacks stop working是什么让自定义功能区回调停止工作
【发布时间】:2020-10-18 13:36:33
【问题描述】:

我开发了一个 excel 插件,其中包含具有不同功能的附加按钮。我的初始代码基于“Ron de Bruin Excel Automation”套件,效果很好。 (我为此感谢他)。最近我添加了另一个组和一个按钮,它在我的 excel(365 Excel 版本 2009)上运行良好,但在其他具有相同 Excel 版本的机器上却失败了。错误是,它找不到任何回调。我消除了所有回调,但只有一个必不可少的“onAction”,但错误仍然存​​在。 任何帮助。

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
    <tabs>
      <tab id="CustomTab" label="שמאות מקרקעין" insertAfterMso="TabDeveloper">
        <group id="GroupA" label="מידע נדלן רשות המיסים">
          <button id="aButton01" label="יבא נתונים" onAction="RunMacro" imageMso="GetExternalDataImportClassic" size="large" />
          <button id="aButton02" label="מזג גיליונות" onAction="RunMacro" imageMso="ReviewCombineRevisions" size="large" />
          <button id="aButton03" label="מיין ומחק עמודות" onAction="RunMacro" imageMso="CreateQueryFromWizard" size="large" />
          <button id="aButton04" label="שווי מר" onAction="RunMacro" imageMso="ConditionalFormattingAboveAverage" size="large" />
          <button id="aButton05" label="התאמת משקל" onAction="RunMacro" imageMso="PageScaleToFitScale" size="large" />
          <button id="aButton06" label="הכנה לדוח שומה" onAction="RunMacro" imageMso="MacroDefault" size="large" />
          <button id="aButton07" label="תמונת הנכס" onAction="RunMacro" imageMso="PictureReflectionGallery" size="large" />
          <button id="aButton08" label="וויסות הורדה אפשרויות" onAction="RunMacro" imageMso="StartTimer" size="large" />
          <button id="aButton09" label="מחיר למשתכן" onAction="RunMacro" imageMso="TentativeAcceptInvitation" size="large" />
        </group>
        <group id="GroupB" label="תכנה">
          <button id="bButton01" label="הוראות שימוש" onAction="RunMacro" imageMso="Help" size="large" />
          <button id="bButton02" label="הזמנת רישיון" onAction="RunMacro" imageMso="GroupOmsInsert" size="large" />
          <button id="bButton03" label="עידכון גירסה" onAction="RunMacro" imageMso="FillUp" size="large" />
          <button id="bButton04" label="נתוני משתמש" onAction="RunMacro" imageMso="ArrangeByAccount" size="large" />
        </group>
        <group id="GroupC" label="נסח טאבו">
          <button id="cButton01" label="PDF" onAction="RunMacro" imageMso="FileEmailAsPdfEmailAttachment" size="large" />
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

{

Sub RunMacro(control As IRibbonControl)
'PURPOSE: Tell each button which macro subroutine to run when clicked

Select Case control.ID
  
  Case "aButton01": Application.Run "FromRibbon"
  Case "aButton02": Application.Run "MergeSheetsmacro"
  Case "aButton03": Application.Run "CleanColumns"
  Case "aButton04": Application.Run "AddAverage"
  Case "aButton05": Application.Run "Weight"
  Case "aButton06": Application.Run "PrepareReport"
  Case "aButton07": Application.Run "ActivateGoogleView"
  Case "aButton08": Application.Run "GrabRegul"
  Case "aButton09": Application.Run "MechirLamishtaken"
  
  Case "bButton01": Application.Run "HelpForm"
  Case "bButton02": Application.Run "LicenseRequest"
  Case "bButton03": Application.Run "UpgradeVersion"
  Case "bButton04": Application.Run "PersonalData"
  
  Case "cButton01": Application.Run "ConvertPDF2Excel"
  
 End Select
    
End Sub

}

enter code here

【问题讨论】:

  • 你能显示onLoad代码吗?为什么&lt;customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"&gt;中没有onLoad
  • 工作了好久没有,求指点如何添加onLoad。
  • 您能否解释一下 omLoad 回调的目的是什么。我认为没有明显的原因。我不想更改任何按钮。
  • 也许还有另一种与功能区“对话”的方式,但 onLoad 在功能区加载时将功能区参数传递给回调过程。这使关联代码能够存储对功能区的引用以供以后使用,并允许您动态更新功能区。
  • 好的,我测试了您的 XML 代码并在我的测试文件中添加了一些 VBA 代码。这对我有用。因此,onLoad 仅在您想要使控件无效等情况下才需要。

标签: excel vba callback office-addins ribbon


【解决方案1】:

经过长时间的试错过程我找到了大意的原因。 64 位与 ,32 位 Office 。 我使用了一些没有为 64 office 正确定义的 dll 函数。结果它破坏了代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    相关资源
    最近更新 更多