运行时错误“13”:Excel VBA中types不匹配

我有一些VBA代码比较两个工作表中的列。 当它发现差异时,它将整个行复制到第三个工作表。 它的工作原理是我想要的,除了我经常(但不是总是)得到types不匹配的错误。

我在每张表格中比较的列是格式化为文本的帮助列,首先将所有行内容连接到一个帮助列(通过= A1&B1&C1&…),然后复制该公式的结果并粘贴VALUES转换成第二个辅助列,该列也被格式化为文本。 然后我比较每张表的第二帮手列。

帮助列的值是字母和数字(名称,电话号码,地址等)的长string,但由于它们被格式化为文本,不应该是相同的types? 错误发生在线上:

Set fValue = .Find(cell.Value, LookIn:=xlValues) 

但我不知道为什么。 任何人都可以点亮一下吗?

 Sub CompareRosters() Dim lRow, lrow2 As Long Dim fValue As Range Sheets("RosterChanges").Range("RosterChanges").Clear Sheets("NewRoster").Select lRow = Range("CK1").End(xlDown).Row lrow2 = Sheets("LastRoster").Range("CK1").End(xlDown).Row For Each cell In Range("CK2:CK" & lRow) With Sheets("LastRoster").Range("CK2:CK" & lrow2) Set fValue = .Find(cell.Value, LookIn:=xlValues) If fValue Is Nothing Then cell.EntireRow.Copy Sheets("RosterChanges").Range("A" & Rows.Count).End(xlUp).Offset(1, 0) End If End With Next cell End Sub 

线索:只有当我比较的文字超过255个字符时才会发生不匹配错误。 我认为这是因为返回了#VALUE错误,而这又会触发不匹配错误。 我怎样才能避免这一点?