【发布时间】:2012-06-22 00:22:31
【问题描述】:
我目前正在处理 Excel 宏,但找不到类似的方法
if array.contains(mystring)
我写了以下内容,它给了我“Invaild Qualifier”消息,并在If 之后突出显示Mainfram
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) Then 这是我的完整代码
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
没关系,我发现了那个愚蠢的错误...... 还是谢谢你
【问题讨论】:
-
仅供参考,这已被问及回答here。
-
@JP.: 是的,那么让我们将其作为完全副本关闭。
-
@Jean-FrançoisCorbett 已标记
-
如果您只想对我的回答发表评论,请不要更新您的问题。改为发表评论。我在运行您的代码时遇到的唯一错误(除了不匹配的
cel/cell引用之外是Rows(cel.Row).Style = "Accent1"行上的错误。 -
接受的答案有效。另请参阅建议使用 Join 方法的答案以获得更快的解决方案。