可能性のある複製:
MS Access VBA配列で文字列を検索する方法
現在、Excelマクロで作業していますが、if array.contains(mystring)
のような方法を見つけることができませんでした
私は次のように書きました。「Invaild Qualifier」というメッセージが表示され、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私はあなたの提案を試みました、そしてそれはオブジェクトが必要だと言いました。ハイライト表示されたIf IsInArray(cell.Text、Mainfram)ThenHeres my full code
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
愚かなエラーを見つけました...とにかくありがとう
my answer から非常によく似た質問へのコードを使用する:
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
Filter()メソッドを使用します- http://msdn.Microsoft.com/en-us/library/aa164525(v = office.10).aspx
私はこれを行うためのショートカットがあるとは思わない-だれかがVB6のlinqラッパーを書くなら!
配列をループして各エントリをチェックすることでそれを行う関数を書くことができます-あなたはそれよりもきれいになるとは思いません。
ここにいくつかの詳細を提供する記事の例があります: http://www.vb6.us/tutorials/searching-arrays-visual-basic-6