我試圖使用Excel.Interop和ExcelDNA創建Recordset。 我使用列表函數來獲取函數嚮導對話框。所以,我做什麼: 1)我寫的那個函數(「= MyFunction的()」) 2)的ActiveCell.FormulaR1C1值,然後試圖運行函數嚮導Excel.Interop:AccessViolation例外時,其中一個參數referes到另一個工作表
...
cell.FormulaR1C1 = formulaStr;
if (!(bool)cell.FunctionWizard()) {
...
函數對話框啓動並正常工作(我可以設置所有參數),但是當我按OK時,如果至少有一個參數指向另一個工作表(如果一切位於一個工作表,此方法工作正常),則會發生AccessViolation錯誤。 按下ok按鈕後函數會計算,並且FunctionWizard()方法發生異常。 有沒有人有類似的東西?
----------更新--------------
我做了簡單的DNA加載項,只用1個按鈕..和錯誤仍然再現: 1)功能:
[ExcelFunction("My Test Function")]
public static string MyTestFunction(string param1, string param2) {
return "It works!";
}
2)色帶按鈕的代碼:
public void OnButtonPressed(IRibbonControl control) {
Application exAp = (Application)ExcelDnaUtil.Application;
Range ac = exAp.ActiveCell;
ac.FormulaR1C1 = "=MyTestFunction()";
if ((bool)ac.FunctionWizard()) {
// Do something
}
}
因此,當我設定從另一片,然後按OK在嚮導功能參數,AccessViolation發生。
你能發佈更多相關的代碼嗎?聽起來像有一個不存在的工作表的參考。 – SpaceSteak
功能區按鈕執行代碼,我寫.. MyFunction存儲單元格引用數組並返回空值(我試圖返回字符串和null也),MyFunction工作正常,但然後發生異常.. – Anton
我也試圖簡單地返回一些函數中的字符串沒有評估某些東西..結果是一樣的。 – Anton