Страницы: 1
RSS
Скрипт распечатки нескольких листов. Ошибка Run-time error 9, скрипт выдает ошибку, но выполняет свою задачу. Почти.
 
Добрый день!

Имеется файл, который генерирует ТТН (Торгово Транспортную Накладную) исходя из выгружаемой внутренней информации.
Всего в файле 7 вкладок:
  1. TDSheet - здесь генерируется внешний вид ТТН
  2. Данные - здесь исходные данные
  3. Адрес - вкладка, в которой адреса магазинов для ТТН
  4. Отчет - вкладка с данными для ТТН
  5. ТН - транспортная накладная, генерируемая так же из Данных
  6. ТТН 2 - вкладка, в которой последние две страницы ТТН отдельно
  7. Кросс-коды - системная вкладка для ТТН
Файл прилагаю во вложении.
На вкладке "Данные" имеются несколько VBA скриптов. Сам я в них не разбираюсь, но пытался внедрить в книгу скрипт, отсмотренный на другом форуме.
Код
    Sheets("TDSheet").Select
    ActiveWindow.View = xlPageBreakPreview
    Sheets("TDSheet").PageSetup.PrintTitleRows = "$1:$17"
    Sheets("Данные").Select
    N = Range("C39")
    Sheets("TDSheet").Select
    Sheets("TDSheet").PrintOut From:=1, To:=N + 1
    Rows("1:" & Sheets("TDSheet").HPageBreaks(N + 1).Location.Row - 1).Hidden = True
    Sheets("TDSheet").PrintOut
    Rows.Hidden = False
    Sheets("TDSheet").View = xlNormalView
    Sheets("Данные").Select
По сути, при нажатии кнопки, к которой он привязан, определенное в ячейке количество листов ТТН печатается с шапкой из первого листа. И этот скрипт прекрасно работал, пока я не добавил в книгу вкладку 5 - ТН и вкладку 6 - ТТН 2. После их добавления скрипт по окончанию стал выдавать ошибку Run-time error 9.
Ошибка показывается в следующей строчке:
  • Rows("1:" & ActiveSheet.HPageBreaks(N + 1).Location.Row - 1).Hidden = True
При всем этом, скрипт выполняет свою работу, но печатает шапку на все листы вместо определенного количества, указанного во вкладке "Данные" в ячейке "С39"
Количество необходимых листов рассчитывается по формуле, исходя из количества артикулов в ТТН деленное на 39 и округленное в меньшую сторону. Прошу помочь разобраться с вопросом.

Спасибо.
Изменено: Vons - 29.03.2020 11:56:14
 
Оформление кода в сообщении - кнопка <...>
Прошу вернуться и исправить форматирование

Цитата
По некоторым соображениям не имею права прикреплять файл для общего доступа,
Ваши соображения не запрещают создать файл-пример с огурцами и фантиками вместо гранат и сумм взяток.
 
Оформление исправил, файл прилагаю.
Благодарю за совет.
Изменено: Vons - 29.03.2020 11:49:58
 
Для примера 222 кБ? Это чтобы помогающие путались в лишней информации?
И зачем 2 раза?

По ошибке:
Код
N = Val("C39")

Ячейка пустая (или в ней 0)
 
Как указано в правилах, файл должен быть в реальной структуре и форматах данных того, что есть по факту и не более 300 кб. Как я указал в описании к проблеме, ошибка стала появляться после добавления двух дополнительных вкладок, так что для полноты ситуации без них не обойтись. Боюсь, не разрушая структуры файла я не могу сделать его еще меньше.
Изменено: Vons - 29.03.2020 11:56:23
 
Цитата
vikttur написал:
По ошибке:Код ? 1N = Val("C39")Ячейка пустая (или в ней 0)
Если макрос правильно находит ячейку, на листе "Данные" в ячейке "C39" то прямо сейчас в ней значение "6".
 
Код
N = Range("C39").Value
 
Цитата
vikttur написал:
1N = Range("C39").Value

Теперь это приводит к "run-time error 13" по той же строчке, но распечатка на этот раз не производится вообще.
 
HPageBreaks - разрывы страниц. Они есть на листе?
 
Имеется 1 вручную установленный разрыв и некоторое неопределенное количество автоматических разрывов, которое зависит от количества информации в ТТН.
Страницы: 1
Наверх