长串和.find

时间:2014-06-11 13:01:45

标签: excel-vba vba excel

我尝试在以下代码中使用.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进行上述比较,还是可以帮我找到合适的替代方案?

我想要实现的目标:

  • 我(平均)对工作簿1发表了100条评论。
  • 我拿了50个样本并将它们复制到工作簿2的表A上。
  • 然后,我将工作簿2上的工作表B上的所有注释复制并关闭工作簿1.
  • 现在我想识别表B上的所有样本注释(表A),并通过给它们另一种背景颜色突出显示它们。

1 个答案:

答案 0 :(得分:1)

你的示例字符串是401个字符长。看起来Find最多只能处理256个字符。

一种替代方法是仅搜索可以唯一标识每个字符串的子字符串。可以是例如前256个字符,或最后256个字符,或中间256个,或任何足够长的字符;可能甚至不必是256个字符。