我尝试在以下代码中使用.Find
方法,但在此行中出现“类型不匹配”错误:
Set Rng = SuchBereich.Find(What:=zelle.Value, LookAt:=xlWhole)`
这是程序:
Sub test()
'Define Fields
Dim anzzeilen As Long
Dim SuchBereich As Range
Dim Bereich As Range
Dim t1 As Long
Dim t2 As Long
'Define SuchBereich as range
With ThisWorkbook.Worksheets(1)
anzzeilen = .Cells(Rows.Count, 1).End(xlUp).Row
Set SuchBereich = .Range(.Cells(1, 5), .Cells(anzzeilen, 6))
End With
'Define Bereich as Range
With ThisWorkbook.Worksheets(1)
t1 = .Cells(Rows.Count, 1).End(xlUp).Row
Set Bereich = .Range(.Cells(1, 1), .Cells(t1, 1))
End With
For Each zelle In Bereich
If zelle.Value <> "" Then
Set Rng = SuchBereich.Find(What:=zelle.Value, LookAt:=xlWhole) '<--ERROR
'Debug.Print Rng.Address
If Not Rng Is Nothing Then
Debug.Print zelle.Address
zelle.Interior.ColorIndex = 12
End If
End If
Next zelle
End Sub
它总是给我错误“类型不匹配”。我尝试使用它只与单元格中的数字,它工作正常。如果我使用短字符串(a,b,c ...)它也可以使用我的字符串,例如
“SQL(结构化查询语言)用于修改和访问来自称为数据库的存储区域的数据或信息。这个初学者在线培训sql教程网站教你学习SQL代码的基础知识并培训你如何编写和编写SQL查询。我将分享关于SQL的数据库知识,并帮助您更好地学习SQL编程。本SQL教程中讨论的概念可以应用“
我总是得到错误。任何人都可以帮助我与.Find
进行上述比较,还是可以帮我找到合适的替代方案?
我想要实现的目标:
答案 0 :(得分:1)
你的示例字符串是401个字符长。看起来Find
最多只能处理256个字符。
一种替代方法是仅搜索可以唯一标识每个字符串的子字符串。可以是例如前256个字符,或最后256个字符,或中间256个,或任何足够长的字符;可能甚至不必是256个字符。