用于查找和偏移值的字符串数组
string array to find and offset values
我正在尝试删除要在一个列中找到的多个变量,然后将一个值偏移到下一列。下面的代码只适用于第一个变量 "a*" 但不适用于其他变量。
我该如何解决这个问题?
Sub a()
Dim rng As Range
Dim sFind(10) As String
sFind(0) = "a*"
sFind(1) = "b*"
sFind(2) = "c*"
sFind(3) = "d*"
sFind(4) = "e*"
sFind(5) = "f*"
sFind(6) = "g*"
sFind(7) = "h*"
sFind(8) = "i*"
sFind(9) = "j*"
For Each rng In Range("J2", Range("J65536").End(xlUp))
If Not rng.find(sFind(), LookIn:=xlValues) Is Nothing Then
rng.Offset(0, 1).Value = "1"
End If
Next rng
End Sub
一种方法是修改内部代码并添加如下所示的循环来检查所有条目。
For i = lbound(sFind) to ubound(sFind)
If Not rng.find(sFind(i), LookIn:=xlValues) Is Nothing Then
rng.Offset(0, 1).Value = "1"
Exit For
End If
Next i
我怀疑你把循环弄错了。这应该有效
Sub a()
Dim rng As Range
Dim sFind(10) As String
Dim i as Long
sFind(0) = "a*"
sFind(1) = "b*"
sFind(2) = "c*"
sFind(3) = "d*"
sFind(4) = "e*"
sFind(5) = "f*"
sFind(6) = "g*"
sFind(7) = "h*"
sFind(8) = "i*"
sFind(9) = "j*"
With Range("J2", Range("J65536").End(xlUp))
For i = LBound(sFind) To UBound(sFind)
Set rng = .Find(what:=sFind(i), LookIn:=xlValues)
If Not rng Is Nothing Then
rng.Offset(0, 1).Value2 = 1
End If
Next i
End With
End Sub
我正在尝试删除要在一个列中找到的多个变量,然后将一个值偏移到下一列。下面的代码只适用于第一个变量 "a*" 但不适用于其他变量。
我该如何解决这个问题?
Sub a()
Dim rng As Range
Dim sFind(10) As String
sFind(0) = "a*"
sFind(1) = "b*"
sFind(2) = "c*"
sFind(3) = "d*"
sFind(4) = "e*"
sFind(5) = "f*"
sFind(6) = "g*"
sFind(7) = "h*"
sFind(8) = "i*"
sFind(9) = "j*"
For Each rng In Range("J2", Range("J65536").End(xlUp))
If Not rng.find(sFind(), LookIn:=xlValues) Is Nothing Then
rng.Offset(0, 1).Value = "1"
End If
Next rng
End Sub
一种方法是修改内部代码并添加如下所示的循环来检查所有条目。
For i = lbound(sFind) to ubound(sFind)
If Not rng.find(sFind(i), LookIn:=xlValues) Is Nothing Then
rng.Offset(0, 1).Value = "1"
Exit For
End If
Next i
我怀疑你把循环弄错了。这应该有效
Sub a()
Dim rng As Range
Dim sFind(10) As String
Dim i as Long
sFind(0) = "a*"
sFind(1) = "b*"
sFind(2) = "c*"
sFind(3) = "d*"
sFind(4) = "e*"
sFind(5) = "f*"
sFind(6) = "g*"
sFind(7) = "h*"
sFind(8) = "i*"
sFind(9) = "j*"
With Range("J2", Range("J65536").End(xlUp))
For i = LBound(sFind) To UBound(sFind)
Set rng = .Find(what:=sFind(i), LookIn:=xlValues)
If Not rng Is Nothing Then
rng.Offset(0, 1).Value2 = 1
End If
Next i
End With
End Sub