2012-04-23 88 views
2

我需要從VBA(MS Excel)執行任何類型的內置函數(如'sum'或'len')。從VBA執行內置函數(Excel)

我有一個限制是我不能將單元格範圍作爲參數傳遞給這些函數。相反,我應該能夠使用嚴格的值。

我希望能夠使用下面的表達式SUM(1,2),它應該返回3,而下面的版本SUM(「A1:A2」)不適用於我。

我設法開發了一些函數來解析我之前的輸入,並使它包含一個值列表(例如上面,它使得用戶輸入的'A1:A2'看起來像一個由兩個數組組成的數組值)。

那麼,任何人都可以給我一個使用內置函數接收值的列表(不只是單元格範圍)的例子嗎?

我試過下面的代碼,但由於某些未知的原因,我一直無法得到它的工作(我一直得到1004錯誤,說:不能運行宏'SUM'。宏可能不可用該工作簿或所有宏可能會被禁用)。

Application.Run "SUM", 2, 2 

一些有價值的建議,這將有助於找到解決這個問題,將不勝感激。

+2

'一些有價值的建議,這將有助於....'有在Excel中一個神奇的鑰匙。令人驚訝的是,你可以從Worksheet和VBA編輯器中按下它:)關鍵是'F1' – 2012-04-23 15:47:51

+0

@SiddharthRout在宏編輯器中推F1會讓你進入一個網頁,說F1無法正常工作。 – Crashworks 2016-03-05 04:38:32

回答

3

要使用一個內置的,Excel中,工作表功能,你需要做類似如下:

Application.WorksheetFunction.Sum(2,2) 
+0

好的,如果我說功能名稱和參數客戶端從另一端發送給我,你怎麼說?我的客戶端可以將函數名作爲字符串和參數發送給範圍或數組。好吧,我可以使用反射,但我不確定在WorksheetFunction中實現了所有功能。和f.e.如果smb給我發送「Len」函數,我該怎麼辦? – nhusnullin 2012-04-24 08:27:24

+0

對不起,我不知道你的意思,但我們似乎已經解決了你原來的問題。 – markblandford 2012-04-24 14:18:07