Подавление строк при печати - Советы по Excel

Жан и Арнольдо задали вопрос об Excel на этой неделе.

В Lotus 1-2-3 вы могли подавить печать строки, указав первым символом вертикальную черту (|). Это было круто , потому что вы могли бы иметь формулу в столбце А , который может быть использован для подавления печати линий с нуля: @IF(E2=0,"|",""). Excel, похоже, не предлагает эту функцию. Я не хочу скрывать строки, я просто хочу подавить их печать в Excel.

MrExcel сочувствует вашей ситуации. Я использовал Lotus 1-2-3 в течение 8 лет, прежде чем моя компания решила использовать Excel в качестве нового стандарта. Переключение никогда не бывает приятным. Excel и Lotus похожи, но опытные пользователи Lotus 1-2-3 часто сталкиваются с проблемами.

Спустя несколько лет после перехода я чувствую, что Excel лучше, чем Lotus. Однако я остро осознаю боль, необходимую при переключении. Изменения легко воспринять как личную атаку и рассердиться на Microsoft. Я помню, как ежедневно думал: «ПОЧЕМУ я должен использовать ', False' в качестве последнего аргумента во всех моих @VLOOKUP, и почему файл справки не выходит и просто не говорит мне об этом?».

Если у вас есть макросы, записанные в Lotus 1-2-3, помните, что вы можете использовать Consulting by для преобразования макросов.

Есть некоторые вещи, которые Lotus 1-2-3 легко сделал, но которых нет в Excel. Прекрасная простота / File Combine Add Complete в Lotus заменена 8 шагами в Excel.

Сегодняшний вопрос о конвейере для подавления печати строк - еще один пример, когда Excel не предлагает аналогичной функции. Макрос LotusPrint ниже будет имитировать эту функцию. Это ужасно неэффективно. Макрос проверяет каждую ячейку в активном диапазоне столбца A. Когда он находит канал, он скрывает строку. Затем он распечатывает рабочий лист и возвращается, чтобы показать скрытые строки.

Option Base 1 Sub LotusPrint() ' ' LotusPrint Macro ' This Macro will temporarily hide rows that start with |, ' print the sheet, then unhide those rows. It is meant to ' emulate the Lotus 1-2-3 feature of not printing rows that ' start with a pipe. ' Copyright 1999 www.MrExcel.com ' ' Dim UnhideRow() As Single Application.ScreenUpdating = False ' Locate the final row in column A FinalRow = Range("A65536").End(xlUp).Row Ctr = 0 ' Check and hide each row that starts with a pipe For x = 1 To FinalRow If Left(Range("A" & x).Value, 1) = "|" Then ' Do nothing if the row is already hidden If Not Range("A" & x).EntireRow.Hidden Then Range("A" & x).EntireRow.Hidden = True ' Save the row number so that it can be unhidden Ctr = Ctr + 1 ReDim Preserve UnhideRow(Ctr) UnhideRow(Ctr) = x End If End If Next x ' Print the sheet ActiveWindow.SelectedSheets.PrintOut ' Unhide any hidden rows If Ctr> 0 Then For x = 1 To Ctr Range("A" & UnhideRow(x)).EntireRow.Hidden = False Next x End If Application.ScreenUpdating = True End Sub

Интересные статьи...