2013-04-07 2 views
0

Я хочу указать диапазон в качестве заголовка страницы из моего кода VBA.Excel VBA - указать диапазон в качестве заголовка страницы

Но когда я сделал

ActiveSheet.PageSetup.LeftHeader = HeaderSheet.Range("A1:L2").Value 

I принимает только первые ячейки т.е. A1 от HeaderSheet в заголовке страницы и игнорирует остальные. Также не применяется граница в заголовке страницы.

Любое обходное решение для этого, пожалуйста?

ответ

1

Таким образом, «Левый заголовок» был бы самым левым заголовком для трех заголовков, которые описывают лист или отчет. Обычно он имеет такие значения, как название отчета, автор, дата отчета и т. Д.

Вы уверены, что не собираетесь указывать заголовки строк или столбцов?

Ниже в PrintTitleRows указаны строки 1 & 2, которые будут использоваться в качестве строк для повторения в верхней части. Альтернативно столбцы для повторения с левой стороны - это только столбец «A».

Sub example() 

    'ActiveSheet.PageSetup.LeftHeader = HeaderSheet.Range("A1:L2").Value 

    With ActiveSheet.PageSetup 
     .PrintTitleRows = "$1:$2" 
     .PrintTitleColumns = "$A:$A" 
    End With 
End Sub 

Если вы на самом деле намерены поместить содержимое ячейки A1-L2 в-основном левой части заголовка, то вы должны будете сделать конкатенацию клеток, я считаю ... а именно,

With ActiveSheet.PageSetup 
    .LeftHeader = Range("a1").Value & " " & Range("b1").Value & " " & Range("a2").Value & " " & Range("b2").Value 
End With 
+0

@LurinS: PrintTitleRows - это то, что я хотел. Большое спасибо :) – Tejas

+1

Просто добавьте заметку. Я верю, что в первом примере отсутствует инструкция «Конец с». По крайней мере, когда я использую этот фрагмент в своем коде, это необходимо. –

+0

Скорректировано, чтобы отразить отзывы Кристофера. благодаря –

Смежные вопросы