Страницы: 1
RSS
Как не печатать пустые ячейки
 
Если у меня есть таблица с двумя столбцами и 30 строками. Первый столбец заполнен полностью - второй нет - есть пустые ячейки. Вопрос: как сделать так, чтобы строки в которых имеются эти пустые ячейки во втором столбце не выводились на печать совсем. Автофильтр не подходит, говорю сразу. Если кто-то знает, помогите.
 
Выбрать столбецЮ F5 - выделить - пустые ячейки. Правый клик на одной из выделенных ячеек - удалить - строку. Распечатать. Ctrl+Z (отменить удаление).
 
не подходит. это почти автофильтр. мне нужно выборочно строки с пустыми ячейками удалять. Нужна какая-то формула, типа "если эта ящейка заполнена, то выводить ее на печать, если нет, то скрыть ее и не выводить на печать.    
Но ваш способ тоже good, я его запомню
 
Поместите в модуль книги данную продцедуру:  
 
Private Sub Workbook_BeforePrint(Cancel As Boolean)  
Cancel = True  
 
<код обработки печати>  
 
End Sub  
 
где вместо <код обработки печати> вставьте код который будет скрывать ненужные строки, печатать то что нужно, и отображать все строки обратно.
Редко но метко ...
 
Я привел способ как сделать для всех строк с пустыми ячейками. Если хотите выборочно - выделите строки вручную и скройте. Либо придумайте критерий, по которому строки надо скрывать
 
где находится модуль книги и что конкретно мне нужно написать вместо код...?
 
{quote}{login=Казанский}{date=19.09.2011 12:36}{thema=}{post}Я привел способ как сделать для всех строк с пустыми ячейками. Если хотите выборочно - выделите строки вручную и скройте. Либо придумайте критерий, по которому строки надо скрывать{/post}{/quote}  
 
в ячейке нет данных - разве это не критерий? только как это написать для программы
 
Про модули читайте тут:  
http://www.excel-vba.ru/chto-umeet-excel/chto-takoe-modul-kakie-byvayut-moduli/  
 
а какой именно должен быть код обработки вам лучше знать (я ведь не вижу ваш файл)
Редко но метко ...
 
{quote}{login=Janna-janna}{date=19.09.2011 12:17}{thema=Как не печатать пустые ячейки}{post}Если у меня есть таблица с двумя столбцами и 30 строками. Первый столбец заполнен полностью - второй нет - есть пустые ячейки. Вопрос: как сделать так, чтобы строки в которых имеются эти пустые ячейки во втором столбце не выводились на печать совсем. Автофильтр не подходит, говорю сразу. Если кто-то знает, помогите.{/post}{/quote}  
Интересно, а почему автофильтр не подходит? М.б. тоже сразу скажете?
 
{quote}{login=}{date=19.09.2011 12:53}{thema=Re: Как не печатать пустые ячейки}{post}{quote}{login=Janna-janna}{date=19.09.2011 12:17}{thema=Как не печатать пустые ячейки}{post}Если у меня есть таблица с двумя столбцами и 30 строками. Первый столбец заполнен полностью - второй нет - есть пустые ячейки. Вопрос: как сделать так, чтобы строки в которых имеются эти пустые ячейки во втором столбце не выводились на печать совсем. Автофильтр не подходит, говорю сразу. Если кто-то знает, помогите.{/post}{/quote}  
Интересно, а почему автофильтр не подходит? М.б. тоже сразу скажете?{/post}{/quote}  
практически он подходит. то есть его можно использовать и получить результат. Но задача должна быть решена именно без его помощи, такое условие. Я понимаю, что автофильтр самое простое и логичное решение, и тем не менее.
 
{quote}{login=}{date=19.09.2011 12:57}{thema=Re: Re: Как не печатать пустые ячейки}{post}...задача должна быть решена именно без его помощи, такое условие.{/post}{/quote}Альтернативу предложил здесь:  
http://www.excelworld.ru/forum/2-794-8922-16-1316443341
 
Здравствуйте!  
вот макрос который скрывает строку если ячейка во втором столбце пуста.    
Sub HideRows()  
Dim x(), i&, hr As Range: Application.ScreenUpdating = 0  
With Range([B1], Cells(Rows.Count, 1).End(xlUp))
    x = .Value  
    For i = 3 To UBound(x)  
        If x(i, 1) = Empty Then  
            If hr Is Nothing Then Set hr = .Cells(i) Else Set hr = Union(hr, .Cells(i))  
        End If  
    Next i  
    .EntireRow.Hidden = False  
End With  
If Not hr Is Nothing Then hr.EntireRow.Hidden = True  
Application.ScreenUpdating = 1  
End Sub  
 
можно привязать к кнопке и нажимать перед печатью(чтобы скрыть), и сделать еще одну кнопку с таким же макросом, но заменить Range([B1] на [A1], нажимать после печати чтобы показать строки. как то так.
 
тут конечно что то может быть не правильно (я сильно в этом не разбираюсь) но у меня работает.  
может пригодится.
 
ошибся Rows.Count, 1 надо было заменить на Rows.Count, 2  
в примере все работает.
 
или так
 
Или так  
 
Sub HideRows3()  
[B:B].SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
ActiveSheet.PrintOut  
Rows.Hidden = False  
End Sub
 
А если столбец 3 или 4
 
учите алфавит - abcd
Живи и дай жить..
Страницы: 1
Читают тему
Loading...