-1

Я написал некоторый код VBA, чтобы определить несколько сложный диапазон, который я хотел бы установить для области печати рабочего листа. Однако, когда я устанавливаю область печати через

Worksheets("Sheet1").PageSetup.PrintArea = myRange.Address

область печати, по-видимому, урезана до первых 255 символов моего диапазона.

Каковы мои варианты для печати (ну, на самом деле, сохранить в .pdf) только мой определенный диапазон? Я хотел бы избежать чего-либо слишком ручного, так как я работаю с ~ 150 книгами. Я использую Excel 2016 64 бит.

Мне известен подобный вопрос здесь (https://stackoverflow.com/questions/11410374/increase-the-maximum-string-length-of-excel-printarea), но принятое решение довольно неудовлетворительно, так как нумерация страниц в сгенерированных PDF-файлах не было бы правильно.

1 ответ1

0

Это больше обходных путей, чем исправлений. По возможности используйте макросы, такие как # 1

  1. Скрыть все ячейки, которые вы не хотите печатать. Печать A1:z99. Показать все клетки.

  2. Создать новый лист временно или нет.

тестовое задание

sub macro1()
Location = "A1 B2:B10 C4:C10 "
Position = 1

While (Position < Len(Location))

found = InStr(Position, Location, " ")

if found=0 then found=len(location)

    printRange = Mid(Location, Position, (found - Position))
    Sheets("Sheet1").Select
    Range(printRange).Select
    Selection.Copy
    Sheets("Sheet2").Select
    Range(printRange).Select
    ActiveSheet.Paste
    Position = found + 1

Wend
End Sub

распечатать весь временный лист.

Удалить (или нет) временный лист.

  1. Похоже на # 2, но вы также можете

    temp.a1 = сцепление (a1, a2, a5, a7, a8, a11)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .