首页 > 解决方案 > Vlookup 上的 Excel VBA

问题描述

我是 Excel VBA 编程的新手,所以请多多包涵:)

我有这个脚本,只要 A 列不为空,它就会在两张纸上进行 VLookup

Dim i As Single

i = 2

Do While Sheet1.Range("A" & i).Value <> " "
    Result = Application.VLookup(Sheet1.Range("H" & i), Sheet2.Range("$A$1:$B$30"), 2, False)
    Sheet1.Range("B" & i).Value = Result
    i = i + 1
Loop

但我不明白为什么当 A 列已经为空时,循环仍然继续将值放在 B 列上。

我错过了停止循环的代码吗?

标签: vbaexcel

解决方案


Delcare 使用它的名称定位您的工作表(以确保您在外观中定位正确的工作表)。像这样的东西:

Dim i As Single
Dim TargetSheet as worksheet

Set TargetSheet = Thisworkbook.Sheet("Your sheet name") 'place your sheet name between ""
i = 2

Do While TargetSheet.Range("A" & i).Value <> "" 'make sure the string is empty
    Result = Application.VLookup(Sheet1.Range("H" & i), Sheet2.Range("$A$1:$B$30"), 2, False)
    Sheet1.Range("B" & i).Value = Result
    i = i + 1
Loop

推荐阅读