VBA函數(UDF)中可能創建具有全局範圍的對象嗎? I.e是否超越了函數的運行時間?我想用一個可以傳遞給其他函數的獨特密鑰將其保存在散列表中。我知道你可以在c#/ C++ dll中做到這一點。VBA:在Excel中創建會話持久對象(散列)
這個動機是一個重要的處理過程,我不想重複數百次函數調用:我想緩存結果,所以我只需要做一次。 E.g讓我們想象我有一個UDF它建立的結果在單元格A1對象:
=CreateResultsObject(arg1, arg2, arg3...)
功能做繁重的工作,並返回一個唯一的ID字符串(存儲在持久哈希對象的關鍵)。單元格A1現在包含這個字符串值,然後我可以將其傳遞給其他函數:然後它們可以使用密鑰訪問散列中的緩存對象。
這可能嗎?如果是這樣如何?
相同原理的礦井,但使用集合(或字典)是更優雅:)(+1) – JMax 2012-02-29 10:19:23
啊!我不知道你可以聲明模塊範圍的變量!感謝vm – 2012-02-29 10:21:46
有關記錄,[關於Ozgrid變量範圍的此鏈接](http://www.ozgrid.com/VBA/variable-scope-lifetime.htm)可能會有所幫助 – JMax 2012-02-29 10:25:16