powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ошибка кода - некорректное завершение - не понимаю в чем дело
23 сообщений из 23, страница 1 из 1
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898452
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sub del()
Dim i As Double
i = 1
Do While (ActiveWorkbook.ActiveSheet.Range("G" & i).Value) <> "конец"
If (ActiveWorkbook.ActiveSheet.Range("G" & i).Value = "") Then
ActiveWorkbook.ActiveSheet.Rows(i).Delete Shift:=xlUp
Else: i = i + 1
End If
Loop
MsgBox ("ALLLL")
End Sub


хочу удалять пустые ячейки в столбце ... вылазит ошибка о некорректном завершении, если дебажить то работает дальше нормально и не вылетает ...но только в режиме дебага, если запускать норм скрипт то опять начинает вылетать...подскажите пожалуйста
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898462
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно попробовать так подправить код
Код: plaintext
1.
2.
3.
ActiveWorkbook.ActiveSheet.Rows(i).Delete Shift:=xlUp
DoEvents
Else: i = i +  1 
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898472
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nomad87,

или удаляй с хвоста

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub del()
Dim i As Double
i =  999 
Do While i> 0 
If (ActiveWorkbook.ActiveSheet.Range("G" & i).Value = "") Then
ActiveWorkbook.ActiveSheet.Rows(i).Delete Shift:=xlUp

End If
 i = i -  1 

Loop
MsgBox ("ALLLL")
End Sub
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898630
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это увы не помогает
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898700
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nomad87,

дополнительно
-выделить лист
-формат,формат яч, выравнивание,объединение яч-снять галку

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub mdel()
Dim i As Double
i =  999 
Application.ScreenUpdating = False

Do While i >  0 
If (ActiveWorkbook.ActiveSheet.Range("G" & i).Value = "") Then
ActiveWorkbook.ActiveSheet.Rows(i).Delete Shift:=xlUp

End If
Debug.Print i;
 i = i -  1 

Loop
Application.ScreenUpdating = True

MsgBox ("ALLLL")
End Sub
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898715
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Code execution has been interrupted
ни больше ни меньше ... вроде все сделал что вы сказали
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898719
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nomad87,

А можно файл с кодом и тестовыми данными - погонять?
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898736
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот текст который я использую

Sub del1()
Dim i As Double
i = 16000 - эта цифра моя
Do While i > 0
If (ActiveWorkbook.ActiveSheet.Range("G" & i).Value = "") Then
ActiveWorkbook.ActiveSheet.Rows(i).Delete Shift:=xlUp
DoEvents
Else: i = i - 1
End If
Loop
MsgBox ("ALLLL")
End Sub
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898748
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в чем смысл цикла?
ячейка G16000 всегда равна "", соответственно, цикл бесконечен.
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898757
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

если в вашем коде то после
ActiveWorkbook.ActiveSheet.Rows(i).Delete Shift:=xlUp
вставьте i=i-1
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898770
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 Sub del1()
Dim i As Double
i =  16000  ' эта цифра моя
Do While i >  0 
  If (ActiveWorkbook.ActiveSheet.Range("G" & i).Value = "") Then
    ActiveWorkbook.ActiveSheet.Rows(i).Delete Shift:=xlUp
    DoEvents
  End If
  i = i -  1 
Loop
MsgBox ("ALLLL")
End Sub
в таком виде не зацикливается, соответственно просто удаляет 16 тыс строк
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898772
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

и doEvent не нужен

а в предлагаемой mdel забликировано обновление листа, что заметно ускоряет выполнение
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898784
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

на моем примере удаляются строки с пустой ячейкой в столбце G -все корректно
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898786
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
G16000 потому что у меня 16000 ячеек интервал с 16000 -я ячейка последняя заполненная.
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898789
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКАна моем примере удаляются строки с пустой ячейкой в столбце G -все корректно
В примере автора столбец G пустой на всем протяжении
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898792
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nomad87,

а что у вас в столбце G
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898813
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nomad87,
тогда и условие другое

Код: plaintext
1.
2.
3.
4.
If (ActiveWorkbook.ActiveSheet.Range("A" & i).Value = "")  _
 and (ActiveWorkbook.ActiveSheet.Range("B" & i).Value = "") Then
   ActiveWorkbook.ActiveSheet.Rows(i).Delete Shift:=xlUp

End If
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898817
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nomad87с 16000 -я ячейка последняя заполненная.
Вообще, при таком объеме данных для ускорения процесса лучше удалять не по одной строке, а сначала применить сортировку по столбцу G, удалить диапазон и вернуть сортировку обратно.

Ну если задача одноразовая - то неважно.
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898836
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

и в этом варианте секудда
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898844
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКАи в этом варианте секудда
это если удаляется 300 строк, как в тестовом файле
Если удаляться будет тыщ 10, времени займет заметно больше.
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898850
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я понял свою ошибку .... это видимо просто заработался ... две суток подряд дали о себе знать
этож надо было не догадаться по поводу того что все решается простейшей сортировкой...
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898866
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nomad87,
А, ну то бишь, если задача одноразовая - макрос не нужен вообще
...
Рейтинг: 0 / 0
ошибка кода - некорректное завершение - не понимаю в чем дело
    #36898869
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно кардинально попробовать, в одну строчку:)
Код: plaintext
1.
  Range("G1:G16000").SpecialCells(xlCellTypeBlanks).EntireRow.Delete Shift:=xlUp
но похоже проблема в самой книге зарыта, надо ее на пустой книге пересоздать, но не копированием листов, а только данных и форматов
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ошибка кода - некорректное завершение - не понимаю в чем дело
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]