Vba 搜索B列中的值,替换D列&;那一排的E

Vba 搜索B列中的值,替换D列&;那一排的E,vba,Vba,VBA新手,所以对我放松点 我有以下格式的电子表格: 我要求VBA在B列中搜索术语“LBR-0001”,然后用值“25”替换该行D列的内容,用“AUD”替换该行E列的内容。包含“LBR-0001”的行将更改,因此无法硬编码到特定行 目前我正在使用下面的代码,但由于它搜索多达10000行,所以完成起来太慢 For i = 1 To 10000 With Sheets("LPP_Previous_Month") If .Range("B" & i).Value = "LBR

VBA新手,所以对我放松点

我有以下格式的电子表格:

我要求VBA在B列中搜索术语“LBR-0001”,然后用值“25”替换该行D列的内容,用“AUD”替换该行E列的内容。包含“LBR-0001”的行将更改,因此无法硬编码到特定行

目前我正在使用下面的代码,但由于它搜索多达10000行,所以完成起来太慢

For i = 1 To 10000
    With Sheets("LPP_Previous_Month")
    If .Range("B" & i).Value = "LBR-0001" Then _
    .Range("D" & i).Value = "25"
    .Range("E" & i).Value = "AUD"
    End With
Next i

如有任何改进,我们将不胜感激。

使用工作表的“匹配”功能快速查找B列中的匹配行。使用该行号设置D列和E列中的值

dim m as variant

With Sheets("LPP_Previous_Month")

    m = application.match("LBR-0001", .range("B:B"), 0)

    if not iserror(m) then
        .cells(m, "D") = 25
        .cells(m, "E") = "AUD"
    end if

End With

使用Application.Match(不是worksheetfunction.Match)并将结果返回给变量。这是使用iError进行可靠测试的唯一方法。

Lifesaver。非常好用,谢谢。