Здравствуйте имеется макрос удаления строк, что следует изменить чтоб он выполнялся на определенном листе?
[vba]
Код
Sub Udalenie_Pustyh_Strok() Dim r As Long, FirstRow As Long, LastRow As Long FirstRow = ActiveSheet.UsedRange.Row LastRow = ActiveSheet.UsedRange.Rows.Count - 1 + ActiveSheet.UsedRange.Row For r = LastRow To FirstRow Step -1 If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete End If Next r End Sub
[/vba]
Вроде переименовал Активный на определенный лист, но он выполняется всеровно на активном листе. Это как я переделал.
[vba]
Код
Sub Udalenie_Pustyh_Strok2() Dim r As Long, FirstRow As Long, LastRow As Long FirstRow = Sheets("Все данные").UsedRange.Row LastRow = Sheets("Все данные").UsedRange.Rows.Count - 1 + Sheets("Все данные").UsedRange.Row For r = LastRow To FirstRow Step -1 If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete End If Next r End Sub
[/vba]
Условие макрос должен выполнятся на какой бы странице я не был, но удаление строк происходило только на листе "Все данные"
Здравствуйте имеется макрос удаления строк, что следует изменить чтоб он выполнялся на определенном листе?
[vba]
Код
Sub Udalenie_Pustyh_Strok() Dim r As Long, FirstRow As Long, LastRow As Long FirstRow = ActiveSheet.UsedRange.Row LastRow = ActiveSheet.UsedRange.Rows.Count - 1 + ActiveSheet.UsedRange.Row For r = LastRow To FirstRow Step -1 If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete End If Next r End Sub
[/vba]
Вроде переименовал Активный на определенный лист, но он выполняется всеровно на активном листе. Это как я переделал.
[vba]
Код
Sub Udalenie_Pustyh_Strok2() Dim r As Long, FirstRow As Long, LastRow As Long FirstRow = Sheets("Все данные").UsedRange.Row LastRow = Sheets("Все данные").UsedRange.Rows.Count - 1 + Sheets("Все данные").UsedRange.Row For r = LastRow To FirstRow Step -1 If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete End If Next r End Sub
[/vba]
Условие макрос должен выполнятся на какой бы странице я не был, но удаление строк происходило только на листе "Все данные"televnoy
Вы всё сделали правильно, разве что упустили один маленький момент. Ваш Delete удаляет строки Rows, вот эти строки тоже надо было привязать к листу. Предлагаю макрос подкорректировать так. Обратите внимание - в двух случаях перед Rows поставлена точка - это своего рода якорь для With.
[vba]
Код
Sub Udalenie_Pustyh_Strok2()
Dim r As Long, FirstRow As Long, LastRow As Long
With Sheets("Все данные") FirstRow = .UsedRange.Row LastRow = .UsedRange.Rows.Count - 1 + .UsedRange.Row For r = LastRow To FirstRow Step -1 If Application.CountA(.Rows(r)) = 0 Then .Rows(r).Delete End If Next r End With
End Sub
[/vba]
televnoy, здравствуйте.
Вы всё сделали правильно, разве что упустили один маленький момент. Ваш Delete удаляет строки Rows, вот эти строки тоже надо было привязать к листу. Предлагаю макрос подкорректировать так. Обратите внимание - в двух случаях перед Rows поставлена точка - это своего рода якорь для With.
[vba]
Код
Sub Udalenie_Pustyh_Strok2()
Dim r As Long, FirstRow As Long, LastRow As Long
With Sheets("Все данные") FirstRow = .UsedRange.Row LastRow = .UsedRange.Rows.Count - 1 + .UsedRange.Row For r = LastRow To FirstRow Step -1 If Application.CountA(.Rows(r)) = 0 Then .Rows(r).Delete End If Next r End With