Всем привет. Имею такой вот код, всё работает но не совсем как нужно. Не понимаю почему проверка не идет в указанном диапазоне ("C1:E70"), а проверяет с "А1". То есть, хочу чтоб столбики A, B не учитывались. Поможете?
[vba]
Код
Sub Udalenie_pust_strok() Dim i As Long Dim diapaz1 As Range Dim diapaz2 As Range Set diapaz1 = Application.Range(ActiveSheet.Range("C1:E70"), _ ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell)) For i = 1 To diapaz1.Rows.Count If WorksheetFunction.CountA(diapaz1.Rows(i).EntireRow) = 0 Then If diapaz2 Is Nothing Then Set diapaz2 = diapaz1.Rows(i).EntireRow Else Set diapaz2 = Application.Union(diapaz2, diapaz1.Rows(i).EntireRow) End If End If Next If diapaz2 Is Nothing Then MsgBox "Нет пустых строк." Else diapaz2.[Delete] End If End Sub
[/vba]
Всем привет. Имею такой вот код, всё работает но не совсем как нужно. Не понимаю почему проверка не идет в указанном диапазоне ("C1:E70"), а проверяет с "А1". То есть, хочу чтоб столбики A, B не учитывались. Поможете?
[vba]
Код
Sub Udalenie_pust_strok() Dim i As Long Dim diapaz1 As Range Dim diapaz2 As Range Set diapaz1 = Application.Range(ActiveSheet.Range("C1:E70"), _ ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell)) For i = 1 To diapaz1.Rows.Count If WorksheetFunction.CountA(diapaz1.Rows(i).EntireRow) = 0 Then If diapaz2 Is Nothing Then Set diapaz2 = diapaz1.Rows(i).EntireRow Else Set diapaz2 = Application.Union(diapaz2, diapaz1.Rows(i).EntireRow) End If End If Next If diapaz2 Is Nothing Then MsgBox "Нет пустых строк." Else diapaz2.[Delete] End If End Sub
Kuzmich, ну вообще то E70. Хотя признаюсь писал код не сам. Поэтому хз как должно быть Идея такая - в указанном диапазоне или начиная с С1 проверить строки не проверяя столбцы А и B, если строка пустая, удалить всю строку.
Kuzmich, ну вообще то E70. Хотя признаюсь писал код не сам. Поэтому хз как должно быть Идея такая - в указанном диапазоне или начиная с С1 проверить строки не проверяя столбцы А и B, если строка пустая, удалить всю строку.Ruslan454
Сообщение отредактировал Ruslan454 - Пятница, 07.02.2020, 15:09
Kuzmich, Вот собрал таблицу, оригинал бросить не могу, слишком большой и много не нужной инфы. По идее макрос должен удалить все желтые строки, потому что там по столбикам C D E нет инфы. Желтым закрасил только для наглядности
Kuzmich, Вот собрал таблицу, оригинал бросить не могу, слишком большой и много не нужной инфы. По идее макрос должен удалить все желтые строки, потому что там по столбикам C D E нет инфы. Желтым закрасил только для наглядностиRuslan454
ммммм.. Это прикол какой то? Код видит что пустых строк всего 11 начиная с ячейки С1, а так же определяет что всего 15 строк. Но почему не работает?
ммммм.. Это прикол какой то? Код видит что пустых строк всего 11 начиная с ячейки С1, а так же определяет что всего 15 строк. Но почему не работает?Ruslan454
удалить все желтые строки, потому что там по столбикам C D E нет инфы
[vba]
Код
Sub DelRow() Dim i As Long Dim iLastRow As Long iLastRow = Cells(Rows.Count, "B").End(xlUp).Row For i = iLastRow To 2 Step -1 If WorksheetFunction.CountA(Range("C" & i & ":E" & i)) = 0 Then Rows(i).Delete End If Next End Sub
[/vba]
Цитата
удалить все желтые строки, потому что там по столбикам C D E нет инфы
[vba]
Код
Sub DelRow() Dim i As Long Dim iLastRow As Long iLastRow = Cells(Rows.Count, "B").End(xlUp).Row For i = iLastRow To 2 Step -1 If WorksheetFunction.CountA(Range("C" & i & ":E" & i)) = 0 Then Rows(i).Delete End If Next End Sub