Excel-DNA,触发 Ribbon 的 onAction 代码时出现问题。 F#
Excel-DNA, issue with firing Ribbon's onAction code. F#
我在 Excel 2010 年并尝试 运行 Excel-DNA/Samples code 在 F# 中自定义功能区。
<tab id='CustomTab' label='My F# Tab'>
<group id='SampleGroup' label='My Sample Group'>
<button id='Button1' label='Run a macro' onAction='RunTagMacro' tag='showMessage' /> <!-- works fine -->
<button id='Button3' label='Dump the Excel Version to cell A1' onAction='OnDumpData'/> <!-- DOES NOT WORK -->
Button1 的动作有效,在第 14 行放置断点按预期工作。
但是 Button3 的操作 OnDumpData 没有。我可以看到代码从未被调用,因为第 45 行上的断点从未被击中。
member this.OnDumpData (control:IRibbonControl) =
let app = ExcelDnaUtil.Application :?> Application // line 45. Breakpoint here is never reached.
let cellA1 = app.Range("A1")
我首先认为这可能是版本控制问题,因此我尝试将 cutomUI 行 (#26) .../office/2006/01...
替换为 .../office/2009/07...
,但问题仍然存在。
我错过了什么(设置或其他...)?如何让 Button3 正确触发 OnDumpData 代码?
编辑1:
按照示例文件中的建议,我打开了 Excel 选项 "Show add-in user interface errors" 选项(在“常规”下的“高级”选项卡下)。按下 Button3 时收到的错误消息是:
An exception occurred while calling function "OnDumpDate". Exception message is :
Could not load file or assembly 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified.
... 然后我注意到当我关闭调试 Excel sheet 时,我在 VS 的输出中收到此消息 window ExcelDna.Integration Warning: 1 : Assembly OFFICE could not be loaded from resources.
。这可能是相关的,但我不完全确定在哪里解决这个问题。
听起来您需要在项目中添加对 Office.dll 程序集的引用。这只是与 COM 相关的 PIA 程序集(如 Microsoft.Office.Interop.Excel)。
直接添加到您的项目中,或者安装名为 "ExcelDna.Interop" 的 NuGet 包,其中包含此库并且还应该添加引用。
我在 Excel 2010 年并尝试 运行 Excel-DNA/Samples code 在 F# 中自定义功能区。
<tab id='CustomTab' label='My F# Tab'>
<group id='SampleGroup' label='My Sample Group'>
<button id='Button1' label='Run a macro' onAction='RunTagMacro' tag='showMessage' /> <!-- works fine -->
<button id='Button3' label='Dump the Excel Version to cell A1' onAction='OnDumpData'/> <!-- DOES NOT WORK -->
Button1 的动作有效,在第 14 行放置断点按预期工作。
但是 Button3 的操作 OnDumpData 没有。我可以看到代码从未被调用,因为第 45 行上的断点从未被击中。
member this.OnDumpData (control:IRibbonControl) =
let app = ExcelDnaUtil.Application :?> Application // line 45. Breakpoint here is never reached.
let cellA1 = app.Range("A1")
我首先认为这可能是版本控制问题,因此我尝试将 cutomUI 行 (#26) .../office/2006/01...
替换为 .../office/2009/07...
,但问题仍然存在。
我错过了什么(设置或其他...)?如何让 Button3 正确触发 OnDumpData 代码?
编辑1: 按照示例文件中的建议,我打开了 Excel 选项 "Show add-in user interface errors" 选项(在“常规”下的“高级”选项卡下)。按下 Button3 时收到的错误消息是:
An exception occurred while calling function "OnDumpDate". Exception message is :
Could not load file or assembly 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified.
... 然后我注意到当我关闭调试 Excel sheet 时,我在 VS 的输出中收到此消息 window ExcelDna.Integration Warning: 1 : Assembly OFFICE could not be loaded from resources.
。这可能是相关的,但我不完全确定在哪里解决这个问题。
听起来您需要在项目中添加对 Office.dll 程序集的引用。这只是与 COM 相关的 PIA 程序集(如 Microsoft.Office.Interop.Excel)。
直接添加到您的项目中,或者安装名为 "ExcelDna.Interop" 的 NuGet 包,其中包含此库并且还应该添加引用。