首页 > 解决方案 > 计数器中的日期类型不匹配

问题描述

我正在设计一个预排序 VBA 代码,它必须寻找一行中引入的值(在这种情况下,行 Z 从 Z4 开始并以 Z15 结束)并且必须验证它是否已经存在于另一行中(在这种情况下,行 AC 开始在 AC4 和 AC15 结束)。如果不存在,则必须将时间放在行 AC 的相应单元格中(例如 Z4 --> AC4,Z5 --> AC5)。这是我确保没有 AC 单元格包含等于另一个 AC 值的值的一种方式(将 AC 值理解为具有两分钟差异的连续位置)。如果它在 AC 行中找到 Z 行的值,则必须在 Z 值上增加两分钟,并再次检查该“位置”是否已被占用,直到找到一个空闲位置。

在下面的代码中,您可以看到单元格 Z4 的示例,这将是行中每个 Z 的重复语句。

它完美地运行计数器 Nº4,但是一旦它给出计数器 Nº5,在行 'ActualHour=CDate(Worksheets("Hoja1").Cells(Counter, 29))' 它带来了'运行时错误'13 ': 类型不匹配'。我不知道为什么,因为类型还是一样,而且值也是一样,我附上计数器 4 和 5 的图像:Counter4 Counter5

Sub TSAT4()
    Dim DesiredHour As Date
    Dim HourTaken As Boolean
    Dim ActualHour As Date
    HourTaken = True
    DesiredHour = CDate(Range("Z4"))
    Do While HourTaken = True
        HourTaken = False
        For Counter = 4 To 15
            ActualHour = CDate(Worksheets("Hoja1").Cells(Counter, 29))
                If CDate(ActualHour) = DesiredHour Then DesiredHour = DateAdd("n", 2, DesiredHour) And HourTaken = True
            Next Counter
    Loop
Sheets("Hoja1").Range("AC4") = DesiredHour
Application.CutCopyMode = False
End Sub

标签: excelvbatype-conversion

解决方案


推荐阅读