2014-02-28 103 views
0

我正在測試Excel-Dna並希望在Excel中運行一些簡單代碼的按鈕。我的理解它下面的代碼應在加載項選項卡在Excel中添加一個按鈕:自定義菜單命令不顯示在Excel的加載項選項卡上

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using ExcelDna.Integration.CustomUI; 
using NetOffice; 
using NetOffice.ExcelApi; 
using ExcelDna.Integration; 
using ExcelPluginTest; 

namespace ExcelPluginTest 
{ 
    public class AddIn : IExcelAddIn 
    { 
     public static Application Excel { get; set; }   
     public void AutoOpen() 
     { 
      Factory.Initialize(); 
      Excel = new Application(null, ExcelDnaUtil.Application); 

     } 

     public void AutoClose() 
     {   
     } 
    } 

    public class ExcelHelper 
    { 
     public static Application Excel { get { return AddIn.Excel; } } 

     [ExcelCommand(MenuName = "ExcelPlugin Test", MenuText = "Write the Excel version")] 
     public void WriteTheVersion() 
     { 
      var ver = Excel.Version; 
      var rng = Excel.Range("B3"); 
      rng.Value = ver; 
     } 
    } 
} 

但是外接程序選項卡不可見,甚至,即使它在文件的檢查|選項|自定義功能區。我不確定是否發生這種情況,因爲沒有任何可顯示的東西(在我的代碼中存在問題),或者該按鈕實際上存在,但我無法看到它,因爲加載項選項卡已隱藏(我確認AddIn已加載(在AutoOpen中設置BP))。

回答

1

對於Excel-DNA來將您的方法註冊爲使用Excel的宏,它需要是「靜態的」。所以這應該工作:

[ExcelCommand(MenuName = "ExcelPlugin Test", MenuText = "Write the Excel version")] 
    public static void WriteTheVersion() 
    { 
    } 

注意,有一個Excel漏洞影響的Excel 2013下[ExcelCommand...]風格的菜單 - 這將固定在即將到來的Excel-DNA版本0.32。

+0

完美Govert,感謝您的快速回復! – Remko

相關問題