배열에 문자열이 있는지 확인하는 방법
중복 가능성 :
MS Access VBA 배열에서 문자열을 검색하는 방법
현재 Excel 매크로 작업 중이며 다음과 같은 방법을 찾을 수 없습니다. if array.contains(mystring)
나는 다음을 쓰고, 그것은 나에게 메시지 "Invaild 한정자"및 하이라이트 제공 Mainfram
직후을If
Dim Mainfram(4) As String
Mainfram(0) = "apple"
Mainfram(1) = "pear"
Mainfram(2) = "orange"
Mainfram(3) = "fruit"
For Each cel In Selection
If Mainfram.Contains(cel.Text) Then
Row(cel.Row).Style = "Accent1"
End If
Next cel
선택은 열입니다
누구 도와 주나요?
안녕하세요, JP 귀하의 제안을 시도했으며 Object required라고 말했습니다. 그리고 If IsInArray (cell.Text, Mainfram) 강조 표시 한 다음 여기에 내 전체 코드가 있습니다.
Sub changeRowColor()
Columns("B:B").Select
Dim cel As Excel.Range
Dim Mainfram(4) As String
Mainfram(0) = "apple"
Mainfram(1) = "pear"
Mainfram(2) = "orange"
Mainfram(3) = "Banana"
For Each cel In Selection
If IsInArray(cell.Value, Mainfram) Then
Rows(cel.Row).Style = "Accent1"
End If
Next cel
End Sub
Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
IsInArray = (UBound(Filter(arr, stringToBeFound)) > -1)
End Function
신경 쓰지 마, 바보 같은 오류를 찾았 어 ... 어쨌든 고마워
매우 유사한 질문에 대한 내 대답 의 코드 사용 :
Sub DoSomething()
Dim Mainfram(4) As String
Dim cell As Excel.Range
Mainfram(0) = "apple"
Mainfram(1) = "pear"
Mainfram(2) = "orange"
Mainfram(3) = "fruit"
For Each cell In Selection
If IsInArray(cell.Value, MainFram) Then
Row(cell.Row).Style = "Accent1"
End If
Next cell
End Sub
Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
IsInArray = (UBound(Filter(arr, stringToBeFound)) > -1)
End Function
JOIN
및 사용하는 또 다른 간단한 방법INSTR
Sub Sample()
Dim Mainfram(4) As String, strg As String
Dim cel As Range
Dim Delim As String
Delim = "#"
Mainfram(0) = "apple"
Mainfram(1) = "pear"
Mainfram(2) = "orange"
Mainfram(3) = "fruit"
strg = Join(Mainfram, Delim)
strg = Delim & strg
For Each cel In Selection
If InStr(1, strg, Delim & cel.Value & Delim, vbTextCompare) Then _
Rows(cel.Row).Style = "Accent1"
Next cel
End Sub
Use the Filter() method - http://msdn.microsoft.com/en-us/library/aa164525(v=office.10).aspx
I'm afraid I don't think there's a shortcut to do this - if only someone would write a linq wrapper for VB6!
You could write a function that does it by looping through the array and checking each entry - I don't think you'll get cleaner than that.
There's an example article that provides some details here: http://www.vb6.us/tutorials/searching-arrays-visual-basic-6
ReferenceURL : https://stackoverflow.com/questions/11109832/how-to-find-if-an-array-contains-a-string
'programing' 카테고리의 다른 글
작업을 위해 여러 스레드를 생성 한 다음 모두 완료 될 때까지 기다립니다. (0) | 2021.01.17 |
---|---|
반투명 벤 다이어그램 비례 및 색상 음영 (0) | 2021.01.17 |
Symfony2 느린 초기화 시간 (0) | 2021.01.17 |
.m2 폴더 또는 settings.xml의 대체 위치를 영구적으로 지정하는 방법은 무엇입니까? (0) | 2021.01.17 |
JavaScript로 CSS 생성 콘텐츠에 액세스하는 방법 (0) | 2021.01.16 |