VBA数值查找/覆盖数据

时间:2018-06-13 20:47:13

标签: excel vba excel-vba

我正在编写一个允许我每月更新数据的宏。但是,我意识到有时我需要在对数据进行更正的同一个月覆盖数据。我试图想出一个允许我搜索整个列的宏,如果与数据匹配,允许我运行另一个宏用新数据覆盖旧数据。关于如何解决这个问题的任何想法?

这是我到目前为止所拥有的。我需要用整列替换为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

1 个答案:

答案 0 :(得分:2)

您不希望在整个列上运行循环(略超过1 mil X)。相反,从底部找到你的最后一行,然后遍历该范围。

如果您的目标是在找到匹配项时运行第二个宏,则可以删除msgboxExit 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