Как остановить печать определенных строк, если одна ячейка пуста - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь создать макрос для печати активного листа.На странице 1, 2, 3, 6 всегда есть данные, поэтому я выбрал «» для ячейки и выбрал ячейку, в которой никогда не будет данных, поэтому они всегда будут печататься.Для страниц 4 и 5 я хочу, чтобы они печатали только в том случае, если в одной определенной ячейке определено что-то, и если ячейка пуста, эта страница не будет напечатана.На странице 4 есть только одна ячейка, которую мне нужно проверить, если она пуста, но на странице 5 мне нужно проверить 4 ячейки, и если какая-то из них не пуста, мне нужна страница 5 для печати.Первые 3 страницы печатаются нормально, но затем я получаю сообщение об ошибке, когда попадаю на страницу 4

Я попытался изменить оператор if для страницы 4, чтобы он смотрел на одну ячейку, а затем, если онасоответствует правилу, оно будет скрывать ячейки (я хотел бы, чтобы они затем показывались после печати страницы 6 или просто не печатали эти строки вместо того, чтобы скрывать, а затем отображать).

Public Sub PrintReport()

Dim strSheetName As StringstrSheetName = ActiveSheet.Name

If Range ("A2"). Value = "" Then 'Page 1

Range ("A1: R91"). PrintOut

IfRange ("A93"). Value = "" Then "Page 2

Range (" A92: R157 "). PrintOut

If Range (" A158 "). Value =" "Then'Page 3

Range ("A158: R199"). PrintOut

If Range ("C202"). Value = "" Then "Страница 4

Range ("A200: A243 "). CompleteRow.Hidden = True

Else

Range (" A200: A243 "). FullRow.Hidden = False

If Range (" C246 "). Значение и диапазон («A269»). Значение и диапазон («E285»). Значение и диапазон («E293»)") .Value =" "Then 'Диапазон 5

(" A244: A301 "). CompleteRow.Hidden = True

Остальное

Диапазон (" A244: A301") .EntireRow.Hidden = False

If Range (" P302 "). Value =" "Then 'Page 6

Range (" A320: R325 "). PrintOut

End If

End If

End If

End If

End If

End If

End Sub

Я бы хотел распечатать каждую страницу, соответствующую заданным критериям, а затем распечатать или не распечатать указанные ячейки.Страницы 1-3 печатаются нормально, так как они всегда печатаются, но это всегда выдает ошибку на странице 4, где диапазон отмечен как Диапазон («A200: A243»). Hidden = True.Мне нужно это либо скрыть, а затем показать эти строки после печати оставшихся страниц, либо просто не распечатать и не показать.

1 Ответ

0 голосов
/ 29 января 2019

Вы можете скрыть только строки или столбцы, а не какой-либо диапазон.Добавьте .EntireRow ко всем вашим операторам hide / unhide, чтобы скрыть / отобразить всю строку, например:

Range("A244:A301").EntireRow.Hidden = True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...