我使用VSTO模板(VS2010,Excel2007)創建了一個Excel Addin。 在解決方案資源管理器中,我有一個名爲Excel的組,並在其下創建一個名爲ExcelAddIn.cs的文件。這有權訪問活動工作表通過代碼如使用VSTO在C#類文件中訪問Excel工作表
public partial class MyAddIn
{
Excel.Worksheet activeWorksheet = (Excel.Worksheet)Application.Activesheet;
Excel.Range firstRow = activeWorksheet.get_Range("A1",missing);
}
等此代碼工作正常,即。我可以得到Excel模型。
但是,我不想將所有的處理代碼放在這個類文件中,而是想處理另一個類文件中的Excel工作表數據。我創建了這個文件,但無法使用上面的代碼,例如。我似乎無法從此文件訪問Excel模型。 我已經重複了「使用Microsoft.Office.Tools.Excel」引用,但投入一行:
Excel.Worksheet activeWorksheet = (Excel.Worksheet)Application.Activesheet;
給了我一個「名字‘應用程序’在目前情況下不存在」錯誤。
關於從這個單獨的類文件獲取Excel模型需要做什麼參考/更改的任何想法?
btw。有效的文件是指第一個代碼行的「Excel.Application」對象,第二個不起作用的單獨文件是指「Microsoft.Office.Interop.Excel」對象。
感謝 皮特
==== FOUND答案==== 讓你從工作表添加其他類中的方法是簡單地訪問
Globals.ThisAddIn.Application.ActiveSheet;
例如:
Excel.Worksheet ws = (Excel.Worksheet)Globals.ThisAddin.Application.ActiveSheet;
其中'ThisAddIn'是嚮導創建的類的名稱(您可能已將其重命名)。
因此,使用Globals來獲取您的Excel對象在ThisAddin代碼之外。
如果有人可以將答案代碼粘貼到答案部分,問題已關閉!我不能 - 太多的初級漢堡包在這裏.Pete – Pete855217 2011-08-17 14:03:01