首页 > 解决方案 > cell.value 上的类型不匹配

问题描述

我的代码有问题。

我有一个包含几个#N/A 的表,因此我必须将它们更改为“缺少数据”。不太难。但在两个特定列中,数据是日期。创建表时,列的类型为“常规”,因此日期以数字表示。

我的问题是我想设置日期类型的列并删除所有值为 0 的单元格(或日期类型的 01/01/1900)。我有这个代码,但它说错误类型不匹配。

我无法复制所有代码,因为很长

sub datachange()
dim cell as range

      For Each cell In Range("EntireTable")
        If Application.WorksheetFunction.IsNA(cell.Value) = True Then
            cell.Value = "Missing Data"
        End If
      Next cell

   For Each cell In Range("EntireTable").Columns(6)
        If cell.Value = 0 Then
            cell.Value = "Missing Information"
        End If
    Next cell
    Range("EntireTable").Columns(6).NumberFormat = "m/d/yyyy"

end sub

标签: excelvba

解决方案


正如@BigBen 在评论中提到的,如果单元格包含错误,您将收到Type Mismatch错误消息。您可以使用IsError函数,它返回一个Boolean值 (True/False),指示表达式是否为错误值。

更改If cell.Value = 0 ThenIf IsError(cell.Value) Then


推荐阅读