Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2023, 13:54   #1
Berrimor
Пользователь
 
Регистрация: 01.07.2008
Сообщений: 16
По умолчанию Границы области печати

Добрый день. Помогите пожалуйста с кодом

Код:
Dim rF As Range
Dim lLastRow As Long
   rF = Columns("B:B").Find(What:="*", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) 
   lLastRow = rF.Row
   ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range(Cells(1, 1), Cells(lLastRow, 18)).Address
Во вложении файл с примером, по нему получается что на Листе2, в столбце "В" через ВПР находим значение ячейки. И хотелось бы чтобы область печати ограничивалась последней не пустой ячейкой в столбце "В", в случае с файлом примером была А1:В15.
Вложения
Тип файла: xlsx Книга1.xlsx (10.6 Кб, 3 просмотров)
Berrimor вне форума Ответить с цитированием
Старый 11.07.2023, 14:47   #2
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Здравствуйте

Цитата:
Сообщение от Berrimor Посмотреть сообщение
...последней не пустой ячейкой в столбце "В"...
Таковой является ячейка В23, поскольку в ней, последней в столбце В есть значение - строка нулевой длинны, которую возвращает формула с ВПР()
В этом случае макрос будет выглядеть так:
Код:
Sub Berrimor1()
    Worksheets("Лист2").PageSetup.PrintArea = "a1:b" & Cells(Rows.Count, "b").End(xlUp).Row
End Sub

Однако, Вы пишете:
Цитата:
Сообщение от Berrimor Посмотреть сообщение
...в случае с файлом-примером была А1:В15.
из чего можно сделать вывод, что Вам нужна последняя не пустая ячейка, а последняя ячейка, с видимыми глазу значениями
В этом случае макрос будет выглядеть совсем по другому:
Код:
Sub Berrimor2()
Dim Val As Range, LR&, PA&
LR = Cells(Rows.Count, "a").End(xlUp).Row
    For Each Val In Range("b1:b" & LR)
        If Val <> "" Then PA = Val.Row
    Next
    Worksheets("Лист2").PageSetup.PrintArea = "a1:b" & PA
End Sub
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 11.07.2023, 15:19   #3
Berrimor
Пользователь
 
Регистрация: 01.07.2008
Сообщений: 16
По умолчанию

Serge 007, Большое спасибо за помощь, попробую разобраться с Вашим кодом. Извиняюсь что не четко сформулировал задачу, действительно нужно чтобы находилась последняя ячейка, с видимыми глазу значениями.
Berrimor вне форума Ответить с цитированием
Старый 11.07.2023, 15:36   #4
Berrimor
Пользователь
 
Регистрация: 01.07.2008
Сообщений: 16
По умолчанию

Большое спасибо!
Разобрался!

Последний раз редактировалось Berrimor; 11.07.2023 в 16:00.
Berrimor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При нажатии на карту изображения в некоторых браузерах отображаются границы области. Есть ли способ убрать эти границы? AlNick HTML и CSS 3 21.05.2018 15:55
как можно отключить сообщение "поля раздела выходят за границы области печати. Продолжить?" Dadosh Microsoft Office Word 7 29.07.2012 11:58
Как убрать сообщение о выходе полей за границы области печати proudbird Microsoft Office Word 1 28.07.2012 18:22
поля разела выходят за границы области печати yurik85 Microsoft Office Word 9 22.04.2012 16:57