【发布时间】:2021-02-21 23:54:30
【问题描述】:
目标:遍历包含文本行的列,如果根据工作表函数 Search() 条件匹配,则将值输出到另一个工作表。
问题:“搜索”功能不匹配错误。第一行数据的 Search() 函数返回 #VALUE。
已尝试:在包含“X=”匹配的目标单元格上,我能够输出所需的值。
Sub practice()
Dim coordinate As Variant
Dim myData As Range
Dim count As Integer
count = 2
Set myData = Worksheets("DATA").Range("A:A")
For Each coordinate In myData
'end loop at blank cell
If coordinate = "" Then
Exit For
End If
If Application.WorksheetFunction.IfError(Application.Search("X=", coordinate, 1), "") <> "" Then
Sheets("COORDINATES").Range("A" & count) = Application.WorksheetFunction.Mid(coordinate, Application.Search("X=", coordinate, 1) + 2, Application.Search("Y=", coordinate, 1) - Application.Search("X=", coordinate, 1) - 2)
Sheets("COORDINATES").Range("B" & count) = Applicatoin.WorksheetFunction.Mid(coordinate, Application.Search("Y=", coordinate, 1) + 2, Application.Search("Z=", coordinate, 1) - Application.Search("Y=", coordinate, 1) - 2)
count = count + 1
End If
Next coordinate
End Sub
编辑:添加 IfError 和空白可解析 if 语句。
现在所需的 mid(search()) 组合返回运行时 438 错误“对象不支持此属性或方法”。
【问题讨论】:
-
为搜索结果设置一个变量并检查是否有错误
-
@Kevin 解决了 if 语句,而不是 mid(search()) 是问题。
标签: excel vba loops type-mismatch