我正在编写一个允许我每月更新数据的宏。但是,我意识到有时我需要在对数据进行更正的同一个月覆盖数据。我试图想出一个允许我搜索整个列的宏,如果与数据匹配,允许我运行另一个宏用新数据覆盖旧数据。关于如何解决这个问题的任何想法?
这是我到目前为止所拥有的。我需要用整列替换为i到500.
Sub FindMatchingValue()
Dim i As Integer, ValueToFind As Integer
intValueToFind = Sheet8.Range("L6")
For i = 1 To 500 ' This needs to be the entire column
If Cells(i, 1).Value = intValueToFind Then
MsgBox ("Found value on row " & i)
Exit Sub
End If
Next i
MsgBox ("Value not found in the range!")
End Sub
答案 0 :(得分:2)
您不希望在整个列上运行循环(略超过1 mil X)。相反,从底部找到你的最后一行,然后遍历该范围。
如果您的目标是在找到匹配项时运行第二个宏,则可以删除msgbox
和Exit Sub
并替换为Call SecondMacro
,其中" SecondMacro"是您分配给您的子课程的名称。只是一个选项〜
Sub FindMatchingValue()
Dim i As Integer, ValueToFind As Integer, LRow as Integer
intValueToFind = Sheet8.Range("L6")
LRow = Range("A" & Rows.Count).End(XlUp).Row
For i = 1 To LRow
If Cells(i, 1).Value = intValueToFind Then
MsgBox ("Found value on row " & i)
Exit Sub
End If
Next i
MsgBox ("Value not found in the range!")
End Sub