2017-01-11 2 views
0

В настоящее время я использую макрос ниже, чтобы настроить заголовок, основанный на содержимом ячейки B3 в электронной таблице «Ссылка», и использовал его когда-то сейчас.Excel VBA для создания заголовка ОШИБКА

В настоящее время я сталкиваюсь с проблемой, когда шрифт заголовка становится очень большим. Заголовок становится настолько большим, что, если я печатаю таблицу (которую я часто делаю с этим файлом), она монополизирует всю страницу - другими словами - заголовок обгоняет всю область печати, потому что она такая большая.

Может ли кто-нибудь увидеть, где я ошибаюсь в макросе, или у вас есть идея, почему это происходит и как решить эту проблему?

---- 

'========================================================================= 
' Custom Header based on value of specified cell 
'========================================================================= 

Sub HeaderFont() 

ActiveSheet.PageSetup.RightHeader = "&""Calibri,bold""&11" & Sheets("Reference").Range("B3") 

End Sub 
+0

Что вы хотите получить? ваш код работает нормально, он создает правый заголовок из текста в «Range (« B3 »)» и устанавливает шрифт в ** Calibri, bold, 11 **. какой результат вы хотите получить? –

+0

Он работает отлично по большей части ... но иногда заголовок будет казаться чрезвычайно большим. Я хочу убедиться, что заголовок всегда будет соответствовать стандартам, установленным в шрифте macro - Calibri, Bold, 11 размера. Существуют ли какие-либо причины, которые могут привести к тому, что заголовок будет прерван от шрифта, заданного макросом? – Finley

ответ

0

Возможно, вам будет интересно узнать что-то наподобие следующего кода. Он проверяет длину строки в ячейке «B3» и в соответствии с длиной (с использованием Select Case) задает размер шрифта заголовка. Вам нужно будет отрегулировать значения внутри Case s в соответствии с вашими потребностями.

Option Explicit 

'========================================================================= 
' Custom Header based on value of specified cell 
'========================================================================= 

Sub HeaderFont() 

Dim FntSize As Integer 

Select Case Len(Sheets("Reference").Range("B3")) 
    Case Is > 300 ' <-- length of string is more than 300 characters 
     FntSize = 11 

    Case Is > 200 ' <-- length of string is more than 200 characters 
     FntSize = 12 

    Case Else 
     FntSize = 13 

    ' you can add more Cases to have more scenarios 

End Select 

ActiveSheet.PageSetup.RightHeader = "&""Calibri,Bold""&" & FntSize & "" & Sheets("Reference").Range("B3") 

End Sub 
+0

На самом деле просто выяснил, почему это происходит. Но мне нужна помощь в выяснении того, как избежать этого. Я указываю, что шрифт должен быть размером 11. Время от времени имя документа начинается с номера 3 (который является частью названия компании), как я могу отделить размер шрифта от текста заголовка, чтобы избежать excel от мышления размер шрифта должен быть 113? – Finley

+0

@Finley ok, надеюсь, что я помог u –

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