powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel_Vb_Hide Row
11 сообщений из 11, страница 1 из 1
Excel_Vb_Hide Row
    #32737077
vallot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется таблица , кол. строк меняется, и всегда есть 1-2 пустые строки с нулями. Какой код надо написать , чтобы наити эту пустую строку и скрыть ее!
...
Рейтинг: 0 / 0
Excel_Vb_Hide Row
    #32737168
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vallotвсегда есть 1-2 пустые строки с нулямиТак пустые или с нулями?
...
Рейтинг: 0 / 0
Excel_Vb_Hide Row
    #32737440
vallot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Часть ячеек в строке пустые а часть с нулями!
Это таблица Pivot , которая так отображает исходную таблицу, если в исходной SELECT 50 строк, но заполнено бывает то 10, то 25 и т.д. И таблица Pivot в этом случае показывает пустую строку (а где колонки с итогами там нули). И я хочу скрыть эту строку,чтобы не шла в печать
...
Рейтинг: 0 / 0
Excel_Vb_Hide Row
    #32737657
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так, м.б., легче бороться с причиной, а не следствием?
Удалить пустые строки из сырья для сводной таблицы проще!
...
Рейтинг: 0 / 0
Excel_Vb_Hide Row
    #32741673
vallot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну а какой код написать в этой борьбе???
...
Рейтинг: 0 / 0
Excel_Vb_Hide Row
    #32742968
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Выделяешь UsedRange на требуемом листе.
2. Сортируешь записи по убыванию ключевого поля; пустые строки соберутся в конце диапазона.
3. Образуешь диапазон, включающий строки от шапки таблицы до последней непустой записи.
4. По этому диапазону строишь сводную таблицу. Восстанавливать для неё исходный порядок записей нет нужды.
...
Рейтинг: 0 / 0
Excel_Vb_Hide Row
    #32743542
vallot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А я вот так сделал, вроде пашет, может кто проще может?
,------------------------------
Dim i As Integer
Dim j As Integer

For i = 10 To 50
For j = 8 To 12

If Sheet4.Cells(i, 8) = 0 _
And Sheet4.Cells(i, 9) = 0 _
And Sheet4.Cells(i, 10) = 0 _
And Sheet4.Cells(i, 11) = 0 _
And Sheet4.Cells(i, 12) = 0 Then

Sheet4.Cells(i, j).EntireRow.Hidden = True

ElseIf Sheet4.Cells(i, j) = "" Then

Sheet4.Cells(i, j).EntireRow.Hidden = False
End If
Next j
Next i
---------------------------------------------
...
Рейтинг: 0 / 0
Excel_Vb_Hide Row
    #32743875
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это - частное, локальное решение.
Предложенное выше - общее решение.
И по объёму рукописного кода оно сопоставимо с частным.
Однако, повторюсь, в случае построения сводных таблиц необходимо устранять причину, а не бороться с её следствиями.
...
Рейтинг: 0 / 0
Excel_Vb_Hide Row
    #32743927
vallot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А это мой окончательный вариант!
,------------------------------
Dim i As Integer

For i = 10 To 50

If Sheet4.Cells(i, 8) = 0 _
And Sheet4.Cells(i, 9) = 0 _
And Sheet4.Cells(i, 10) = 0 _
And Sheet4.Cells(i, 11) = 0 _
And Sheet4.Cells(i, 12) = 0 Then

Sheet4.Cells(i, 1).EntireRow.Hidden = True

End If
Next i
...
Рейтинг: 0 / 0
Excel_Vb_Hide Row
    #32744199
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
немного эстетики и гибкости
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Sub MyRows()
Dim StartRow As Long
Dim EndRow As Long
Dim iRange  As Range
Dim CheckRange As Range
    StartRow =  10 
    EndRow =  50 
    For Each iRange In Sheet4.Range("A" & StartRow & ":A" & EndRow)
        Set CheckRange = Sheet4.Range("H" & iRange.Row & ":L" & iRange.Row)
        If WorksheetFunction.Max(CheckRange) =  0  And WorksheetFunction.Min(CheckRange) =  0  Then _
                iRange.EntireRow.Hidden = True
    Next iRange

End Sub
Этот пример поможет если надо будет проверять столбцов 20.
...
Рейтинг: 0 / 0
Excel_Vb_Hide Row
    #32744454
vallot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да...классная вещь, спасибо!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel_Vb_Hide Row
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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