如果功能的ExcelFunction
屬性指定IsMacroType=true
,則只有Excel-DNA才允許進入Excel的XLL API。我不清楚的是,爲什麼簡單地將它添加到我的所有功能中並且完成它並不是一個好主意;我假設它不是,否則它將是默認值。在Excel-DNA中標記函數IsMacroType有哪些優缺點?
與Excel自身的函數計算波動有關嗎?如果網上有很好的資源描述IsMacroType=true
的優缺點,我很樂意看到它!
如果功能的ExcelFunction
屬性指定IsMacroType=true
,則只有Excel-DNA才允許進入Excel的XLL API。我不清楚的是,爲什麼簡單地將它添加到我的所有功能中並且完成它並不是一個好主意;我假設它不是,否則它將是默認值。在Excel-DNA中標記函數IsMacroType有哪些優缺點?
與Excel自身的函數計算波動有關嗎?如果網上有很好的資源描述IsMacroType=true
的優缺點,我很樂意看到它!
的IsMacroType=true
屬性改變登記的功能,這與對xlfRegister
呼叫完成時的Excel-DNA使用參數,如記錄這裏:https://msdn.microsoft.com/en-us/library/office/bb687900.aspx特別地,Excel的DNA添加一個「#」的pxTypeText
的端部參數。
文檔說:
加#號的在
pxTypeText
最後一個參數代碼之後給人的功能相同的調用權限功能上 宏表。這些如下:
該函數可以檢索尚未在此重新計算週期中計算的單元格的值。
該函數可以調用任何XLM信息(2類)函數,例如
xlfGetCell
。如果數字符號(#)不存在:
- 評估在
xlretUncalced
錯誤未計算細胞的結果,和當前的功能是 再次調用一旦小區已經被計算;- 調用任何XLM 以外的信息功能
xlfCaller
導致xlretInvXlfn
錯誤。
標誌着一個功能IsMacroType=true
的一些缺點:
IsThreadSafe=true
。[ExcelArgument(AllowReference=true)]
則函數由Excel會自動認爲是揮發性object
類型的至少一個參數(即使函數被明確標記爲IsVolatile=false
。)此外,我的理解是在Excel計算過程中,這些函數在依賴性處理中被區別對待。因此,您可能會預計工作表計算順序會發生一些變化。不過,我沒有參考或複製。
我的建議是隻在特殊情況下設置IsMacroType=true
,當您知道它確實是必需的並且您準備調查可能出現的任何問題時。