Ошибка приложения или объекта - PullRequest
0 голосов
/ 14 декабря 2011

Я не знаю, почему я получаю ошибку в названии ... У меня есть небольшой фрагмент кода:

Do While ws2.Cells(Rand, 1).Value <> "" And Rand < 65000
    Min = ws2.Cells(Rand, 5).Value
    Data = ws2.Cells(Rand, 1).Value
    If Min <> 0 Then
        Do Until Min = 0
            If Min < MinZi Then
                ws.Cells(lRow, 1).Value = Data
                ws.Cells(lRow, 2).Value = Min / MinZi
                Min = 0
            Else
                ws.Cells(lRow, 1).Value = Data
                ws.Cells(lRow, 2).Value = 1
                Data = DateAdd("d", -1, Data) **'the error is on this line**
                Min = Min - MinZi
            End If
        lRow = lRow + 1
        Loop
    End If
Rand = Rand + 1
Loop

В ws2.Cells (Rand, 1) у меня есть несколько дат.... поэтому я хочу прочитать каждую строку в ws2, пока у меня есть дата ... если есть дата, я ищу количество минут в столбце 5. Так что, если количество минут не равнодо 0, тогда, если количество минут меньше, чем количество минут в дне, я вычисляю, сколько Мин представляет ... иначе, если количество минут больше, чем количество минут в дне, я добавляю дату в другомлист с номером 1 (что означает, что он заполнен на 100%), затем я вычитаю количество минут в дне, пока у меня не будет 0 минут.Данные определяются как дата.Любые идеи, почему я получаю эту ошибку?

Другая странная вещь заключается в том, что в буфер листа (ws) добавляется столько строк, сколько текущей даты (14.12.2011 означает 40891 строк)...и я не знаю почему.Есть идеи?

Большое спасибо!

1 Ответ

0 голосов
/ 20 декабря 2011

Если Min > 0 and MinZi = 0, то внутренний цикл будет продолжаться до тех пор, пока что-то не упадет.

Возможные причины падения:

  • Если lRow является целым числом, достигнув значения 32767.Сообщение об ошибке: «Переполнение».
  • l Строка достигает максимального значения для строки в вашей версии Excel.Сообщение об ошибке: «Ошибка приложения или объекта».
  • Данные достигают -657434.Сообщение об ошибке: «Недопустимый вызов процедуры или аргумент».

Я полагаю, что ваша программа останавливается на ws.Cells(lRow, 1).Value = Data, а не на Data = DateAdd("d", -1, Data).

Я предлагаю вам исследовать MinZi и предлагаюуделите больше внимания отладчику, прежде чем обращаться за помощью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...