gpt4 book ai didi

vba - Excel VBA range.find 起作用

转载 作者:行者123 更新时间:2023-12-03 00:00:36 25 4
gpt4 key购买 nike

我尝试使用 range.find 在列中查找值,并从下一列返回匹配的值。

我使用宏记录器记录了 find(),它似乎工作正常一段时间,但由于某种原因它现在给我一个错误。据我所知,我没有更改任何会影响这段代码的内容。

这就是我所拥有的

Public Function look_up_id(id, table)
Worksheets(table).Activate
Cells.Find(What:=id, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate

look_up_id = ActiveCell.Offset(0, 1).Value
End Function

我现在遇到的错误是:

Object variable or With block variable not set

知道为什么现在会发生这种情况吗?

我可以在 range.find() 上找到的所有资源看起来我都做得对......

干杯 - 大卫

最佳答案

试试这个

Public Function look_up_id(id, table) As Variant
Dim ws As Worksheet
Dim aCell As Range

look_up_id = "Not Found"

Set ws = ThisWorkbook.Sheets(table)

With ws
Set aCell = .Cells.Find(What:=id, _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)

If Not aCell Is Nothing Then _
look_up_id = aCell.Offset(, 1).Value
End With
End Function

有关 .Find 的更多信息 HERE

关于vba - Excel VBA range.find 起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21403916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com