在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/C#  Office/ Excel UDF函數(shù)中怎么獲取Range對(duì)象。

Excel UDF函數(shù)中怎么獲取Range對(duì)象。

我使用.net 開發(fā)Excel udf函數(shù),有如下需求:在udf函數(shù)內(nèi)部,獲取當(dāng)前調(diào)用udf函數(shù)的單元格的range對(duì)象,我現(xiàn)在使用以下代碼獲取,雖然可以獲取到,但是有個(gè)bug:當(dāng)有多個(gè)excel打開時(shí),或引發(fā)COMException,異常來自HRESULT:0x800A03EC
圖片描述

Microsoft.Office.Interop.Excel.Application app =
(Microsoft.Office.Interop.Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
            Microsoft.Office.Interop.Excel.Range rr = app.ThisCell;

想問下各位,有沒有別的辦法,獲取Range對(duì)象。

回答
編輯回答
玄鳥

找了一天自己來解答了,udf類實(shí)現(xiàn)接口IDTExtensibility2,然后重寫以下方法

public void OnConnection(object Application, ext_ConnectMode ConnectMode, 
object objectAddInInst, ref Array custom)
? ?? ???{
? ?? ?? ?? ?MyExcelAppInstance = (MsExcel.Application)Application;
? ?? ?? ?? ?MyAddInInstance = AddInInst;
? ?? ???}

MyExcelAppInstance 就是當(dāng)前執(zhí)行的udf函數(shù)的excel實(shí)例

2017年2月12日 11:44