2017-07-25 69 views
0

我想選擇一個特定的表(通過名稱或指數)與我的Excel中添加有沒有用。選擇一個特定的表在VSTO Excel加載

我的插件文件ThisAddIn.cs有:

public Excel.Workbook GetActiveWorkbook() 
{ 
    return (Excel.Workbook)Application.ActiveWorkbook; 
} 

我的Ribbon1.cs有:

namespace Test3 
{ 
    public partial class Ribbon1 
    { 
     private void Ribbon1_Load(object sender, RibbonUIEventArgs e) 
     { 
      Debug.WriteLine("Hello"); 
      Workbook currentwb = Globals.ThisAddIn.GetActiveWorkbook(); 
      Worksheet scratch = currentwb.Worksheets.Item[1] as Worksheet; // Error blocks here 
      if (scratch == null) 
       return; 
      // Worksheet scratch = currentwb.Worksheets["Sheets1"]; 
      scratch.Range["A1"].Value = "Hello"; 
     } 
    } 
} 

但我得到一個System.NullReferenceException: 'Object reference not set to an instance of an object.'

我是新來的C#(來自蟒蛇)和我很困惑爲什麼這不起作用。任何幫助將不勝感激。

+0

你檢查過工作表是否存在? (通過currentwb.Worksheets.Count)才能訪問它。 – Malick

回答

0

的問題是,我試圖將其加載之前加載Workbook實例。換句話說,試圖抓住Ribbon Load中的實例爲時尚早。在ButtonClick事件上抓取實例可以正常工作!