반응형
VBA, 문자열에 특정 문자가 포함된 경우
저는 보통 함께 일하지 않습니다.VBA
이걸 이해할 수가 없어요스프레드시트의 문자열에 특정 문자가 포함되어 있는지 확인하는 중입니다.
Private Sub CommandButton1_Click()
Dim myString As String
RowCount = WorksheetFunction.CountA(Range("A:A"))
MsgBox RowCount
For i = 2 To RowCount
myString = Trim(Cells(i, 1).Value)
If myString.Contains("A") Then
oldStr = Cells(i, 15).Value
newStr = Left(oldStr, oldStr.IndexOf("A"))
End If
Next
End Sub
이 코드는 값 목록을 거쳐야 하며 문자 A와 그 뒤에 오는 모든 것을 제거할 수 있습니다.나는 나의 문제를 겪고 있습니다.IF
문, 잘못된 한정자입니다.내가 어떻게 내 것을 만들 수 있을까요?IF
명령문 출력 셀의 문자열에 문자 A가 포함되어 있는지 여부?
정말 감사합니다.
문자가 발견된 문자열의 인덱스를 반환하는 InStr 함수를 사용해 보십시오.InStr이 0을 반환하는 경우 문자열을 찾을 수 없습니다.
If InStr(myString, "A") > 0 Then
newStr에 할당하는 라인에서 오류가 발생하면 oldStr을 변환합니다.또한 해당 InStr 함수에 대한 인덱스입니다.
Left(oldStr, InStr(oldStr, "A"))
시도:
If myString like "*A*" Then
이것이 당신이 원하는 것인지 확실하지 않지만, 그것은 당신이 그것을 제공한 범위를 순환할 것이고 만약 그것이 "A"를 발견한다면 그것은 그것을 셀에서 제거할 것입니다.오래된 Str이 무슨 용도로 쓰이는지...
Private Sub foo()
Dim myString As String
RowCount = WorksheetFunction.CountA(Range("A:A"))
For i = 2 To RowCount
myString = Trim(Cells(i, 1).Value)
If InStr(myString, "A") > 0 Then
Cells(i, 1).Value = Left(myString, InStr(myString, "A"))
End If
Next
End Sub
많은 셀을 순환하는 경우 이진 함수를 사용하면 훨씬 더 빠릅니다.또한 "> 0" 대신 "<> 0"을 사용하면 속도가 빨라집니다.
If InStrB(1, myString, "a", vbBinaryCompare) <> 0
언급URL : https://stackoverflow.com/questions/24617278/vba-if-a-string-contains-a-certain-letter
반응형
'prosource' 카테고리의 다른 글
Typescript 및 Jest를 사용한 단순 가져오기 모의 (0) | 2023.06.17 |
---|---|
C - scanf() vs gets() vs fgets() (0) | 2023.06.17 |
개별 Python 장치 테스트를 일시적으로 사용하지 않도록 설정 (0) | 2023.06.12 |
Angular 5 - 브라우저 새로 고침 시 홈페이지로 페이지 리디렉션 (0) | 2023.06.12 |
루프에 있는 동안 다른 변수 이름을 어떻게 생성합니까? (0) | 2023.06.12 |