[英]XLAM / XLA Addins: is there a better way?
這篇文章是關於在不創建鏈接的情況下安裝 XLAM。 (每個人都討厭鏈接)。 考慮微不足道的插件:
Public Function UDF_HELLO(x)
UDF_HELLO = "Hello " & x
End Function
將此代碼和其他任何內容放入模塊中,並在桌面上保存為“Hello.xlam”(而不是在默認的 excel 插件文件夾中)。 接下來,在 HELLO.XLAM 仍處於打開狀態時,使用公式創建一個新的 XLSX 工作簿
=UDF_Hello("world")
在單元格 A1 中,它只是在該單元格中顯示“Hello world”。 保存工作簿並退出 Excel。 現在,如果您在沒有 XLAM 的情況下重新打開工作簿,Excel 會抱怨“鏈接到其他來源......”。 無論您單擊“更新”還是“不更新”,Excel 都會像這樣修改單元格 A1 中的公式:
='C:\Documents and Settings\tpascale\Desktop\Hello.xlam'!UDF_Hello("world")
很多時候這種“強制鏈接”是不可取的。 在我的計算環境中,有很多臨時分析,在我們為解決當前問題而拼湊的每個 XLAM 上強加安裝方案是沒有意義的。 我只想將 XLAM 文件分發給用戶,讓他們在需要時打開它們,而不必擔心最輕微的錯誤步驟會導致他們的公式被破壞。
題:
有沒有辦法指示 Excel 永遠不要為 UDF 構造外部鏈接,並且只是在加載 UDF 時使用它們,否則返回 #VALUEs ?
我不知道使用 .xla/.xlam 加載項解決此問題的方法。
但 .xll 加載項不會出現此問題。 這些可以使用Excel 2010 SDK在 C 中創建,或者使用免費的Excel-DNA庫在 VB.NET 或 C# 等托管語言中創建。
(免責聲明:我是 Excel-DNA 的開發人員。這個問題是我使用 .xll 界面制作托管 UDF 加載項的原因之一。)
這應該可以解決您的問題,盡管它不會向 Excel 指示有關外部鏈接的信息。 我已經通過創建 XLAM、將它保存到我的桌面、將它安裝在 Excel 加載項中然后在新工作簿上使用它來自己測試它。
腳步:
最好的事物,
您可以讓他們打開 .xla 文件並讓 Auto_Open 過程安裝加載項。
http://www.vbaexpress.com/kb/getarticle.php?kb_id=693
excel 關閉后,您可以讓加載項自行卸載。
oAddIn.Installed = False
您可以通過使用名為 something 的工作表為您的加載項設置一個設置,讓用戶在每次使用后不卸載,然后讓單元格 A1 等於 true 或 false。
我還沒有測試過這個,但希望它對你有用。
我通常通過以下方式解決這個問題:
請參閱此處回復中的詳細說明。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.