Добрый день.
Есть два сводных отчета, на каждом листе есть кнопка Обновить данные. К кнопкам привязан макрос обновления данных сводной таблицы и макрос скрытия пустых строк. Кнопки по сути одинаковые, но макрос скрытия должен работать только для второго листа/отчета. Если обновить данные по кнопке на первом отчете, то во втором отчете данные обновятся, но будут отображены пустые строки, а если обновить данные именно на втором отчете/листе, то пустые строки будут скрыты.
Подскажите, пожалуйста, как заменить выполнение этого макраса с Active sheet на конкретный лист второго отчета, чтобы скрытие пустых строк корректно отрабатывало при нажатии на кнопку Обновить данные даже на первом листе/отчете?
Код:
Код |
---|
Sub Refresh_All()
ThisWorkbook.RefreshAll
Dim ra As Range, delra As Range, ТекстДляПоиска As String, ТекстДляПоиска2 As String
Application.ScreenUpdating = False ' отключаем обновление экрана
ТекстДляПоиска = "(пусто)" ' удаляем строки с таким текстом
' перебираем все строки в используемом диапазоне листа
For Each ra In ActiveSheet.UsedRange.Rows
' если в строке найден искомый текст
If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) Is Nothing Then
' добавляем строку в диапазон для удаления
If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
End If
Next
' если подходящие строки найдены - удаляем их
If Not delra Is Nothing Then delra.EntireRow.Hidden = True
Dim i As Integer, d As Integer
Application.ScreenUpdating = False
d = ActiveSheet.UsedRange.Rows.Count
For i = 2 To d
If Cells(i, 1).Value <> "(пусто)" And Cells(i, 1).Value <> "" Then
Rows(i).Hidden = False
End If
Next i
Application.ScreenUpdating = True
Application.StatusBar = "Поиск " & i & " из " & d
Call SaveWbCopy
End Sub |