arrays - 如何判断一个数组是否包含一个字符串

标签 arrays vba substring

Possible Duplicate:
How to search for string in MS Access VBA array

我目前正在处理 Excel 宏,但找不到类似的方法 if array.contains(mystring)

我写了以下内容,它给了我消息“无效限定符”并突出显示 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 我尝试了你的建议,它说需要对象。并强调了 如果 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

没关系,我发现了那个愚蠢的错误...... 还是谢谢你了

最佳答案

使用 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

关于arrays - 如何判断一个数组是否包含一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11109832/

相关文章:

javascript - 查找子字符串时无法返回数组的长度

c# - 使用多维数组索引器的最有效方法

php - ajax成功函数中的codeigniter访问数据数组

java - 如何删除字符串(句子)中的空格

c - 查找与正则表达式匹配的子字符串

python - 如何从以空格结尾的字符串中排除子字符串?

java - 多线程增加了我的矩阵乘法示例中的时间?

excel - VBA 宏在运行后什么都不做,没有错误(macos)

excel - F#,Office 中的另一个 VBA?

mysql - 根据数字范围自动填写大型数据集