2013-08-20 3 views
1

"찾기"와 함께 "왼쪽"워크 시트 함수를 사용하여 VBA에서 문자열 변수를 확인하려고합니다. 그러나 excel은 find 함수를 VBA 함수로 해석하므로 해석 할 때 오류 메시지가 나타납니다. 내 코드 아래Excel VBA - 찾기와 함께 왼쪽 함수 사용

: MSA 문자열입니다

... 
Else 
    MSa = MSa & Left(Range("D22"), Find(".", Range("D22")) - 1) & " " & Range("D25").Value & "." 
    Range("Q7").Value = MSa 
End If 
... 

. 이 문제를 어떻게 해결할 수 있을지 조언 해 주시겠습니까?

미리 감사드립니다.

답변

1

InStr이 방법을 쓸 것, 그것을 사용하기 : 좋은 작품

MSa = MSa & Left(Range("D22"), InStr(Range("D22"), ".") - 1) & " " & Range("D25").Value & "." 
+0

가, 감사합니다! – jcv

1

워크 시트 기능 Find을 사용하려면 다음과 같이 완전히 정규화해야합니다.

Application.WorksheetFunction.Find 

Find을 사용하면 VBA는 VBA 기능이라고 가정합니다. match에 대해서도 마찬가지입니다.

4

짧은 대답은 Application.WorksheetFunction.Find입니다. 그러나 나는 그것을 사용하지 않을 것이다. 아래를 읽으십시오.

그래서 Sheet1에 셀 A1에 abc.def을 입력합니다.
다른 셀에서 =LEFT(A1,FIND(".",A1)-1)을 입력하고 abc 값을 얻습니다.

는 VBA (이것은 디버그 및 느린에 힘들어)하지만 몇 가지 단점을 가지고에서 내가

variable = Left(Sheet1.[A1],Application.WorksheetFunction.Find(".",Sheet1.[A1])-1) 

호출 Excel 워크 시트 함수를 작성합니다 VBA에서 같은 함수를 호출합니다. 워크 시트 함수 Find와 매우 유사한 네이티브 VBA 함수 인 InStr을 사용하는 것이 좋습니다. 매개 변수의 순서는 다르지만 결과는 같습니다. 그래서 워크 시트 함수의 상당 알아보십시오

variable = Left(Sheet1.[A1],InStr(Sheet1.[A1],".")-1)