2012-07-23 4 views
3

내 프로그램에서 오류 기능과 오류 방지 기능을 사용하려고합니다. 둘 다 일하고 있지 않습니다. 오류 Compile Error: Sub or Function not defined이 계속 나타납니다. 그러나 셀에 들어가 수동으로 오류 기능을 사용하려고하면 작동합니다.Excel VBA 코드에서 Excel 수식 함수 (ERF, ERFC) 사용?

왜 그럴까요? 실제 코드에서 어떻게 사용할 수 있습니까?

오류 기능은 ERF(x)이고 보조 오류 기능은 ERFC(x)입니다. 심지어이 작동하지 않습니다

Sub SeriouslyWHYIsntThisWorking() 
    x = 3 
    Range("A1") = Erf(x) 
End Sub 

을 : 여기

이 작동하지 않는 것들의 예

Sub PleaseWork() 
    Range("A1") = Erfc(1) 
End Sub 

을하지만 Excel로 가서 셀에 =ERF(3) 또는 =ERFC(1)를 입력 한 경우 , 작동 할거야.

나는 이것에 아주 새롭고 믿을 수 없을 정도로 간단한 것을 놓친다. 도와 주시면 대단히 감사하겠습니다! 내 리눅스 컴퓨터에서 엑셀을 가지고 있지 않기 때문에,

Sub ThisShouldWorkNow() 
    x = 3 
    formula = "=Erfc(" + x + ")" 
    Range("A1").Formula = formula 
End Sub 

이 완전히 검증되지 않은 ...하지만 난에 걸쳐 포인트를 받고 있다고 생각 - 당신이 .Formula 문을 사용해야합니다 :

답변

2

은 VBA에서 워크 시트 수식을 사용하려면, 당신은 그것의 앞에 Application.WorksheetFunction.을 넣어해야합니다.

일부 기능은 VBA를 등가물이 없지만, (내가 아는 한)하지 erf의 경우와 erfc

+0

아, 나는 그 중 일부가 vba에 해당하는 것이 아니라는 것을 알았습니다. 고맙습니다! – TheTreeMan

+0

예 :'= FIND (':'application.worksheet.find (')를 사용할 수있는 동안 vba 함수'InStr'를 사용하는 것이 더 낫습니다 – SeanC

+1

이것은 여전히 ​​추가 기능의 필요성을 언급하지 않습니다 – Gaffi

3

당신은 VBA에 대한 분석 도구는 추가 기능을 설치/참조가 있습니까? (atpvbaen.xls를 찾으십시오)

함수는 해당 추가 기능의 일부이며 두 가지 버전이 있습니다 (하나는 Excel 함수 용이고 다른 하나는 VBA 용입니다). 하나는 프로젝트에서 사용 가능하도록 설정 및 참조한 것입니다.

추가 기능은 MSFT의 표준 기능이지만 항상 기본적으로 설정되는 것은 아닙니다. Excel에서 정상적으로 사용할 수 있다면 이미 Excel 버전을 설치 한 것입니다. 따라서 모든 기능을 구현/사용하는 방법에 상관없이 추가 기능을 필요로하는 것처럼 보이는 것처럼 사용할 수 있습니다. 의미, 당신이 다른 사람과 이것을 공유하고 싶다면, 그들은 추가 기능을 설치/활성화해야합니다.


어느

Range("A1").value = Application.WorksheetFunction.ERF(x)

으로 셀 값을 설정하거나

함께 휴대 화학식 설정 (동일 정확하고 올바른)에서 제공하는 다른 사람들이 응답을 함께 연결하는 방법 Range("A1").Formula = "=Erfc(" + x + ")"

은 추가 기능을 사용하는 최종 사용자가 필요합니다.

+0

설치하지 않았 음을 알려 주셔서 감사합니다. 이 프로그램은 많은 사람들이 사용하기 때문에이 문제를 해결할 수는 없습니다. 그러나 위의 솔루션 하나를 사용하면 작동합니다. – TheTreeMan

+0

@ TheTreeMan 최종 사용자가 AnalysisToolpak (비 VBA 버전)을 올바르게 설치하지 않은 경우 (셀에 직접 입력 한 경우에도) 'ERF/ERFC'수식은 – Gaffi

+0

자신을 혼란스럽게 만들었습니다. ERF 앞에 Application.Worksheetfunction을 추가하면 효과가있었습니다. – TheTreeMan