excel - 使用 range.find 方法时出现类型不匹配错误
问题描述
谁能帮我使用 range.find 方法。类型不匹配错误不断出现,我不知道为什么。
我尝试将范围变量设置为 Range,然后使用 Set 来定义它,我也尝试过不使用 Set,但随后又出现了另一个错误。
Dim r1 As Range
Set r1 = Range("B:K").Find("WhatToFind").row
我希望上面的代码能给我 WhatToFind 的行,它肯定在工作表中,但仍然给出错误。
即使我.Row
从最后删除,我也会收到此错误:
运行时错误“1004”:
应用程序或对象定义错误
解决方案
您需要先检查是否找到了某些东西,然后才能从中返回任何东西。
Sub Test()
Dim r1 As Range
Dim lFoundRow As Long
Set r1 = Range("B:K").Find("WhatToFind")
If Not r1 Is Nothing Then
MsgBox "WhatToFind is on row " & r1.Row
lFoundRow = r1.Row
Else
MsgBox "Not found"
End If
End Sub
我怀疑这是错误的原因,但会FIND
记住上次使用时的设置(通过代码或在工作表上手动使用Ctrl+F
)。
您可以在 上设置每个参数FIND
:
Sub Test()
Dim r1 As Range
Dim lRow As Long
With ThisWorkbook.Worksheets("Sheet1").Range("B:K")
Set r1 = .Find( _
What:="WhatToFind", _
After:=.Cells(1, 1), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
MatchByte:=False, _
SearchFormat:=False)
If Not r1 Is Nothing Then
lRow = r1.Row
Else
MsgBox "Not found"
End If
End With
End Sub
推荐阅读
- java - 如何在Java中使用正则表达式获取包含某些变量的某些部分?
- node.js - 后端和远程 AWS 实例之间的通信
- maven - 是否可以在另一个插件的两次执行之间运行一个插件?
- python - 任何想法如何从给定的点云中分割出盒子表面?
- google-cloud-platform - 关于烫发安装问题的 Google OCR
- scala - 我想反序列化 scala 中的 json 对象
- python - 有没有办法从 2D (x,y) 数据集中绘制同心圆颜色图,其中 x 是 python 中的圆的半径
- php - Symfony 5 在某些请求中没有检测到正确的语言环境
- excel-formula - 如何在 Excel 的行项目中添加“上次更新日期”?
- jmeter - Jmeter 读取 CSV 文件返回
写在上面之后