VBA에서 단어를 비교할 때 대소문자 민감도를 제거합니까?
저는 사용자가 주소를 입력하고 주소의 요소를 데이터베이스와 일치시켜 위치를 찾을 수 있는 VBA 프로그램을 개발하고 있습니다.
불행하게도, 저는 사례 민감성에 대한 반복적인 문제를 겪고 있습니다.
예를 들어 이 코드를 사용하는 경우:
For i = 11 To lRowB
Range("B" & i).Activate
myResult = IsNumeric(Application.Match(ActiveCell.Value, manilaListRange, 0))
활성 세포의 값을 내 데이터베이스의 단어 목록과 비교할 것입니다.문제는, 만약 내 활성 세포에서 단어가 "miaami" 또는 "MIAMI"이고 데이터베이스에 "miaami"만 있다면, 그것은 작동하지 않을 것이라는 것입니다.
다른 예:
If Range("J6").Value = "tawi" Then
Range("J6").Value = "Tawi-Tawi"
End If
동일한 문제입니다. 동일한 케이스로 쓰여진 단어만 작동합니다.
이걸 어떻게 없앨 수 있죠?특히 귀찮고 가능한 모든 경우에 데이터베이스를 다시 쓸 수 없습니다!
모듈 레벨에서 발행할 수 있는 명령문이 있습니다.
Option Compare Text
이렇게 하면 모든 "텍스트 비교" 대소문자가 구분되지 않습니다.즉, 다음 코드에 "this is true" 메시지가 표시됩니다.
Option Compare Text
Sub testCase()
If "UPPERcase" = "upperCASE" Then
MsgBox "this is true: option Compare Text has been set!"
End If
End Sub
예를 들어 http://www.ozgrid.com/VBA/vba-case-sensitive.htm 을 참조하십시오. 모든 인스턴스에 대한 문제를 완전히 해결할 수 있을지 확신할 수 없습니다(예:Application.Match
기능) 하지만 그것은 모든 것을 처리할 것입니다.if a=b
진술들.에 대해서는Application.Match
다음을 사용하여 인수를 대문자 또는 소문자로 변환할 수 있습니다.LCase
기능.
두 값을 소문자로 변환하여 비교할 수 있습니다.
다음은 예입니다.
If LCase(Range("J6").Value) = LCase("Tawi") Then
Range("J6").Value = "Tawi-Tawi"
End If
비교할 목록이 큰 경우(위 예제의 manilaListRange 범위) 일치 기능을 사용하는 것이 현명합니다.이는 절차를 지연시킬 수 있는 루프의 사용을 방지합니다.마닐라 리스트 범위가 모두 대문자인지 소문자인지 확인할 수 있다면 이것이 저에게 가장 좋은 옵션인 것 같습니다.매치할 때 'UCase' 또는 'LCase'를 빠르게 적용할 수 있습니다.
ManilaListRange를 제어할 수 없는 경우에는 'search', 'Instr', 'replace' 등을 비교할 수 있는 여러 가지 방법이 있는 이 범위를 반복해야 할 수도 있습니다.
그것은 약간의 해킹이지만 그 일을 할 것입니다.
Function equalsIgnoreCase(str1 As String, str2 As String) As Boolean
equalsIgnoreCase = LCase(str1) = LCase(str2)
End Function
언급URL : https://stackoverflow.com/questions/17035660/in-vba-get-rid-of-the-case-sensitivity-when-comparing-words
'programing' 카테고리의 다른 글
네트워크 공유에서 파일을 잠그는 사용자 확인 (0) | 2023.05.01 |
---|---|
NULL 값을 테이블 끝으로 정렬 (0) | 2023.05.01 |
특정 파일("우리", "내", "그들의")에 대한 Git 병합 전략을 선택합니다. (0) | 2023.05.01 |
단일 SQL Server 문이 원자적이고 일관성이 있습니까? (0) | 2023.04.26 |
INFORMATION_SCHEMA를 사용하여 기본 제약 조건을 찾으려면 어떻게 해야 합니까? (0) | 2023.04.26 |