比较 different/separate table 列中的值时出现 'Type mismatch' 运行 时间错误

Getting 'Type mismatch' Run-time error when comparing values in different/separate table columns

基本上我只是想检查单独的 table 列中的两个单元格是否包含相同的字符串,如果它们包含相同的字符串,我只想分配另一个字符串 .Offset(, 1) 远离原始单元格。

我花了几个小时试图解决这个问题。 我还尝试比较 .text 属性并使用 CStr() 进行转换 但仍然出现不匹配错误。

这是一个示例

Dim c1 As Range
Dim c2 As Range

For Each c1 In tranTab.DataBodyRange.Columns(1)
    For Each c2 In rawTab.DataBodyRange.Columns(9)
        If c2.Value = c1.Value Then
            c2.Value = c1.Offset(, 1).Value
        End If
    Next c2
Next c1

调试突出显示此行:

If c2.Value = c1.Value Then

并抛出:

'Type mismatch' Run-time error

Locals window中都显示为Variant/Variant 类型。 这是我的第一个 post/question,我几乎可以肯定我已经完成了我的研究以找到关于不匹配问题的所有类似信息,但是 none 在 上操作时用尽了这个话题tables/ListObjects.

循环不是通过单元格,而是通过整列。试试这个并检查地址是否是以下列之一:

Sub TestMe()

    Dim c1 As Range
    For Each c1 In Worksheets(1).ListObjects("tranTab").DataBodyRange.Columns(1)
        Debug.Print c1.Address
    Next c1

End Sub

为了遍历单元格,在 for-each 循环的末尾添加 .Cells

For Each c1 In Worksheets(1).ListObjects("tranTab").DataBodyRange.Columns(1).Cells