Vba 查看不同工作表的IF&vlookup
我有下面的代码做我需要的工作了。它检查D列以查看值是否大于200,如果大于200,则在sheet2中选择vlookups以获取相应的值。然而,由于循环的原因,我的方法需要相当长的时间来加载。谁能帮我把代码写得更快,或者有不同的方法?谢谢Vba 查看不同工作表的IF&vlookup,vba,excel,Vba,Excel,我有下面的代码做我需要的工作了。它检查D列以查看值是否大于200,如果大于200,则在sheet2中选择vlookups以获取相应的值。然而,由于循环的原因,我的方法需要相当长的时间来加载。谁能帮我把代码写得更快,或者有不同的方法?谢谢 Private Sub CommandButton1_Click() Dim vlookup As Variant Dim lastRow1 As Long, lastRow2 As Long Dim ws1 As Worksheet,
Private Sub CommandButton1_Click()
Dim vlookup As Variant
Dim lastRow1 As Long, lastRow2 As Long
Dim ws1 As Worksheet, ws2 As Worksheet
Dim i As Long
Set ws1 = Sheets("Sheet1")
lastRow1 = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row
Set ws2 = Sheets("Sheet2")
lastRow2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row
For i = 4 To lastRow1
If Cells(i, "D") > 200 Then
With ws1.Range("g4:g" & lastRow1)
.Formula = "=iferror(vlookup(a4, " & ws2.Range("a2:b" & lastRow2).Address(1, 1, external:=True) & ", 2, false), text(,))"
.value = .value
End With
Else
Cells(i, "g") = "Not found"
End If
Next i
End Sub
把公式放在g4里,复制下来
ws1.Range("g4").formula = "=iferror(vlookup(a4, " & ws2.Range("a2:b" & lastRow2).Address(1, 1, external:=True) & ", 2, false), text(,))"
ws1.Range("g4").copy ws1.Range("g4:G" & lastrow1
但是我应该如何设置找不到的部分?感谢您在公式的iferrorvlookupa4和ws2.Rangea2:b和lastRow2.Address1,1,external:=True和,2,false和未找到的iferror部分中输入它&我无法成功完成。所以我所做的就是替换代码中从For I=4开始的部分。。。直到下一次,我将使用您提供的代码。我做错了吗?谢谢