关于VBA for Excel中range.Find()方法出现的问题

2025-02-26 18:38:19
推荐回答(3个)
回答1:

当 find 结果为 空 时,也就是没有找到所要查找的内容时,你这句就会报错“对象变量或 With 块变量没有设置(错误 91)”

使用find时,一般要加个结果判断的过程,如:
Option Explicit

Private Sub CommandButton1_Click()
Dim BranchName As Range, TargetRow As Long
Dim iFind As Range, i
i = 1
Set BranchName = Worksheets(1).Range("A3:A34")
Set iFind = BranchName.Find(Worksheets(2).Cells(i, 1).Value)
If Not iFind Is Nothing Then TargetRow = iFind.Row
End Sub

回答2:

原因是没有给BranchName对象指定引用区域。这个就没问题。

Dim BranchName As Range
Dim TargetRow As Long
Set BranchName = Range("a3:a34")
TargetRow = BranchName.Find(Worksheets(2).Cells(1, 1).Value).Row

回答3:

Dim BranchName As Range
Dim TargetRow As Long
Set BranchName = Range("a3:a34")
TargetRow = BranchName.Find(Worksheets(2).Cells(1, 1).Value).Row