2017-04-18 114 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)") 

如果你提供你的问题的更多细节,我可以在这个答案扩大,或别人会拿出多少更好的方法。