2017-04-18 4 views
-6

저는 신입생이기 때문에 vba를 fomulas로 코딩하는 것과 관련하여 제발 도와주세요. = IFERROR (AP24728 < 0, (NET24D28, AQ24728, 'N : #Abe \ 보고서 PU 우표 \ Desember [공휴일 보고서], $ A $ 2 : $ A $ 69)) - 1)vba에서 Excel 수식을 사용하는 방법

고맙습니다.

+2

자세한 내용을 입력하십시오. 현재 귀하의 모든 질문에 VBA 문제가 있으며 Excel 공식이 표시된다는 것입니다. 너 뭐하려고? 작동하지 않는 것은 무엇입니까? – YowE3K

+1

이 수식을 VBA에 넣으려고하면 어떤 샘플 코딩이 필요합니까? 감사합니다. – LhSandi

답변

0

VBA에서 Excel 수식을 사용하려면 다음 두 가지 중에서 선택할 수 있습니다. Evaluate 여기에 나와있는 @ YowE3K의 예제와 같은 함수 문자열이거나 WorksheetFunction 메서드를 사용하여 대부분의 Excel 함수를 수행 할 수 있습니다. Evaluate 메서드는 예제와 같이 고정 된 수식을 사용하여 VBA에서 결과를 반환하려는 경우에 가장 적합합니다. WorksheetFunction 메서드를 사용하면 VB 언어로 인수를 지정할 수 있습니다 (내 의견으로는 동적 함수에 더 좋습니다). 그러나 셀 범위를 반복하는 등 여러 번이 작업을 수행하려는 경우 속도 측면에서 절충안이 있습니다. 그러나 IfError에 다른 함수가 포함되어 있으므로 둥지 아래처럼 IfError 하나 내의 다른 WorksheetFunction는 :

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

그러나, 당신이 원하는 무엇 게시물에서 명확하지 않다. 여기서 핵심은 전체적으로 무엇을하려고하는지, 즉 달성하려는 '큰 그림'이 무엇인지에 대한 추가 정보를 제공하는 것입니다. 하나의 셀에서 값을 테스트하고 싶습니까? 이것이 여러 세포에서 반복 할 필요가있는 것입니까? 워크 시트에서 수식을 훨씬 더 쉽게 사용할 수있을 때 왜 VBA에서이 작업을 수행해야합니까?

2

"무엇을 하시겠습니까?" 당신이 당신의 질문에 추가 정보를 제공하는 경우

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)") 

, 나는이 대답에 확장 할 수 있습니다, 또는 다른 사람이 훨씬 더 가지고 올 수있다 : "나는 VBA에이 수식을 넣고 싶다"의 일부 샘플 코드는 다음과 같을 수 있습니다 더 좋은 방법.

관련 문제