vba 类型日期不匹配

问题描述 投票:0回答:1

我正在创建一个 Excel 来监控维护进度。我想隐藏基于单元格值(日期)超过 45 天的行。

我已经在S列上设置了日期,但它运行时错误13:类型不匹配。我什至尝试将格式更改为美国日期mmddyyyy而不是ddmmyyyy,但代码仍然只能工作到第S18行。谁能指出发生了什么事吗?

Sub Hidedatemorethan45days()
    Dim cell As Range
    For Each cell In Range("S6:S67")
        If cell.Value - Date >= 45 Then
            cell.EntireRow.Hidden = True
        Else
            cell.EntireRow.Hidden = False
        End If
    Next cell
End Sub

S栏有一个从不同工作表引用的公式如下
在此输入图片描述

=IF($C$3="QC67",'Master records List'!BL6,IF($C$3="QC66",'Master records List'!BJ6,IF($C$3="QC65",'Master records List'!BH6,IF($C$3="QC64",'Master records List'!BF6,IF($C$3="QC63",'Master records List'!BD6,IF($C$3="QC62",'Master records List'!BB6,IF($C$3="QC61",'Master records List'!AZ6,"請輸入機號")))))))
在此输入图片描述

任何人都可以指出我的代码发生了什么并能够修复它

excel vba excel-formula type-mismatch
1个回答
0
投票

找到不起作用的单元格

Sub Hidedatemorethan45days()
    Dim cell As Range, check As Boolean
    For Each cell In Range("S6:S67")
    check = False
    If IsNumeric(cell.Value2) Then
        If IsDate(cell.Value) Then
         check = True
             If cell.Value2 - Date >= 45 Then
              cell.EntireRow.Hidden = True
             Else
              cell.EntireRow.Hidden = False
             End If
        End If
    End If
  If Not check Then Debug.Print cell.Address ' show cells which are not date in the debug window
    Next cell
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.