2011-04-19 71 views
6

這篇文章是關於在不創建鏈接的情況下安裝XLAM的。 (每個人都討厭鏈接)。考慮瑣碎的插件:XLAM/XLA Addins:有更好的方法嗎?

Public Function UDF_HELLO(x) 
     UDF_HELLO = "Hello " & x 
    End Function 

把這段代碼並沒有別的成模塊,並保存爲桌面上的「Hello.xlam」(而不是默認的加載項擅長文件夾)。接下來,當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以NEVER構建UDF的外部鏈接,並簡單地,如果他們加載以其它方式使用UDF和返回#VALUEs?

回答

3

我不知道用.xla/.xlam加載項解決這個問題。

但是,使用.xll加載項不會發生此問題。 這些可以在C中使用Excel 2010 SDK創建,或者使用免費的Excel-DNA庫以VB.NET或C#等託管語言創建。

(免責聲明:。我的Excel-DNA的開發商這個問題我與.xll接口去製作管理UDF插件的原因之一)

+0

我知道如何使COM可見功能在VB.Net或C#。這些可以從VBA中調用,但不能從配方欄中調用。從公式欄中調用它們的絕對最簡單的方法是什麼?它是你的Excel-DNA還是別的什麼? Visual Studio在生成所有COM-interop內容方面做得很好 - 但據我所知,並不會爲你產生任何東西w.r.t. excel插件。 – tpascale 2011-04-19 21:21:40

+0

假設最簡單(也是唯一的MS支持的)將.NET函數作爲UDF提供給Excel的方法是創建一個自動化加載項:http://www.codeproject.com/KB/COM/excelnetauto.aspx。但是自動化加載項很慢,需要在機器上註冊,並且對添加功能描述,類別等方面的支持有限.Excel-DNA解決了所有這些問題,讓您只需一個.xll,無需安裝,用戶可以只需點擊打開。如果你已經安裝了Visual Studio,並且知道屬性是什麼,你會發現Excel-DNA易於使用並且可以正常工作。 – Govert 2011-04-20 08:44:47

+0

好的很多謝謝 - 我會嘗試Excel DNA。我快速瀏覽了你的「Excel DNA Hello World功能」 - 非常好。理想情況下,我只是將VBA代碼包裝在DNA XML中,沒有IDE - 非常簡單 - 除了我的UDF依賴於VBA類。那些也可以用這種非常輕巧的方式包裹起來?如果是的話,很好,如果不是的話,我可能會咬緊牙關,用DNA轉換成.NET。 – tpascale 2011-04-20 14:49:22

1

你可以讓他們打開.xla文件並具有Auto_Open過程來安裝加載項。

http://www.vbaexpress.com/kb/getarticle.php?kb_id=693

的Excel關閉後,你可以有外接卸載本身。

oAddIn.Installed = False 

你可以給你的外接設置爲用戶不會在每次使用後卸載使用一個名爲那麼一些有A1單元格等於真或假的工作表。

我還沒有測試過,但希望它適合你。

1

這應該可以解決您的問題,雖然它不會指示Excel有關外部鏈接。我已經通過創建XLAM自己對其進行了測試,將其保存到桌面,將其安裝到Excel加載項中,然後在新的工作簿中使用它。

步驟:

  1. 一旦保存加載項,將其關閉。
  2. 轉到Excel選項 - >插件
  3. 在管理下拉選擇Excel加載項並按下「開始」
  4. 在瀏覽‘的「出現單擊Add-Ins'dialogue’和導航到您剛創建的加載項 。選擇它並點擊「確定」
  5. 如果系統提示您將加載項保存在加載項文件夾中,請選擇「否」。 如果加載項文件後綴 與正在使用的Excel版本不匹配,則選擇「是」可能會導致錯誤。
  6. 外接程序應該出現在「可用加載項」滾動框, 檢查其框,點擊「OK」
  7. 每當你打開Excel外接程序現在應該是積極的。
  8. 通過打開一個新的工作簿並嘗試使用您的UDF來測試這一點。

最佳,