2017-04-18 131 views
-6

我是一個新人,請幫助我的問題關於編碼vba的fomulas。 = IFERROR(AP24728 < 0,(NETWORKDAYS(B24728,AQ24728,'N:#Abe \ Report PU \ Desember [Report PU 05 Des 2016.xlsx] Holidays'!$ A $ 2:$ A $ 69)) - 1)如何在vba中使用Excel公式

謝謝

+2

請給出更多細節。您目前所說的所有問題都是您遇到了VBA問題,並且顯示了Excel公式。你想做什麼?什麼不起作用? – YowE3K

+1

我想把這個公式放入VBA,任何樣本編碼? 謝謝 – LhSandi

回答

0

使用Excel公式中VBA你有兩個選擇:您可以Evaluate功能字符串作爲@這裏給出YowE3K的例子,或者您可以使用WorksheetFunction方法來執行大多數Excel函數。 Evaluate方法是最好的,如果你想像你的例子所建議的那樣做一個固定公式,並在VBA中返回結果,WorksheetFunction方法允許你用VB語言指定參數,在我看來,這對於動態函數更好然而,如果您嘗試多次執行此操作(例如迭代一系列單元格等),則在速度方面存在折衷。)但是,由於IfError中嵌入了另一個函數,因此您需要巢另一個WorksheetFunctionIfError一個內,如下圖所示:

WorksheetFunction.IfError([expression], WorksheetFunction.NetworkDays([date from], [date to], [holidays])) 

然而,這是不是從你的文章,你想要做什麼明確的。這裏關鍵的是要提供一些關於你想要做什麼的進一步的信息 - 例如你試圖達到什麼樣的「大局」?你只是想測試一個單元的價值?這是否需要重複多個單元?爲什麼你需要在VBA中做到這一點,當你更容易在工作表中使用公式?

2

根據你對「你想要做什麼?」的回答,的「我想要把這個公式,VBA」,一些示例代碼可能是:

Dim result As Variant 
result = Evaluate("IFERROR(AP24728<0,(NETWORKDAYS(B24728,AQ24728,'N:#Abe\Report PU\Desember[Report PU 05 Des 2016.xlsx]Holidays'!$A$2:$A$69))-1)") 

如果你提供你的問題的更多細節,我可以在這個答案擴大,或別人會拿出多少更好的方法。