excel 为什么这个Vlookup循环宏不工作?

yquaqz18  于 2023-02-10  发布在  其他
关注(0)|答案(1)|浏览(141)

我正在尝试编写一个Excel宏,该宏将对工作簿的1155个单独工作表(命名为Page 1、Page 2等)上K列的单元格9:100执行VLOOKUP。不过,我想在另一个工作簿中运行该宏。因此,我尝试将一个工作簿中的单元格作为目标,以填充另一个工作簿中的单元格值。
我有这个。但是,当我运行它时,它所做的只是用“#VALUE!"替换第一个工作表中指定单元格的内容。它对其他工作表没有任何作用。

Sub SearchPages()
Dim i As Integer
Dim cell As Range
Dim value As Variant
Dim result As Variant
Dim wb As Workbook

Set wb = Workbooks.Open("file.xls")

For Each cell In Range("K9:K100")
    value = cell.value
    result = "Not Found"
    
    For i = 1 To 1155
        On Error Resume Next
        result = Application.VLookup(value, "Page " & i & "!K:N", 4, False)
        On Error GoTo 0
        If Not IsError(result) Then
            Exit For
        End If
    Next i
    
    cell.value = result
Next cell

End Sub

我想做的事情可能吗?任何见解都非常感谢!

5vf7fwbs

5vf7fwbs1#

您正试图从wb以外的位置访问VLookup。
我只对你的代码做了几处改动:

Sub SearchPages()
Dim i As Integer
Dim cell As Range
Dim value As Variant
Dim result As Variant
Dim wb As Workbook

Set wb = Workbooks.Open("file.xls")

For Each cell In Range("K9:K100")
value = cell.value
result = "Not Found"

vbnet
Copy code
For i = 1 To 1155
    On Error Resume Next
    result = Application.VLookup(value, wb.Sheets("Page " & i).Range("K:N"), 4, False)
    On Error GoTo 0
    If Not IsError(result) Then
        Exit For
    End If
Next i

cell.value = result
Next cell

wb.Close

End Sub

你能给予一下吗,让我知道你的VLookup现在是否正常工作?

相关问题