Тип даты Mysmatch в счетчике - PullRequest
0 голосов
/ 13 апреля 2020

Я разрабатываю код предварительной последовательности VBA, который должен искать значение, введенное в строку (в этом случае строка Z начинается с Z4 и заканчивается на Z15), и должен проверять, существует ли он уже в другой строке (в этом случае строка A C, начинающаяся в AC4 и заканчивающаяся в AC15). Если он не существует, он должен поместить время в соответствующую ячейку строки A C (например, Z4 -> AC4, Z5 -> AC5). Таким образом, я заверяю, что ни одна ячейка A C не содержит значения, равного другому значению A C (под значениями A C понимаются места в строке с разницей в две минуты). Если он находит значение строки Z в строке A C, он должен добавить две минуты к значению 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
...