что не так с этой строкой кода VBA для Excel Print - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть выпадающий список со списком размеров страниц в Excel. я хочу изменить размеры страницы с изменением выбора в выпадающем списке.

Следующее не работает

Public Sub UpdateSize()
Dim Papersizetext As String 

Papersizetext = "xlPaper" & Worksheets("Static").Range("B7").value 'A4 is the value in cell B7

shgenerate.PageSetup.PaperSize = Papersizetext 'not working 
shgenerate.PageSetup.PaperSize = "xlPaper" & Combobox1.value 'this also not working

shgenerate.PageSetup.PaperSize = xlPaperA4 'is working - i want above to work. 

'shgenerate is sheet name

End sub

1 Ответ

1 голос
/ 14 апреля 2020

Вы можете создать свою собственную функцию, чтобы проанализировать ввод и вернуть правильный член перечисления:

Private Function PaperSize(ByVal rawSize As String) As Long
    Select Case rawSize
        Case "A4"
            PaperSize = xlPaperA4
        Case "A3"
            PaperSize = xlPaperA3
        Case "A5"
            PaperSize = xlPaperA5
        Case Else
            PaperSize = xlPaperUser ' or some other default 
    End Select
End Function

Для более сложных форматов бумаги, таких как "Letter 8.5"x11" 22x28cm" или "Legal 8.5"x14" 22x36cm", вы можете использовать InStr для проверки существования "Letter" и "Legal" для возврата xlPaperLetter и xlPaperLegal.

Regex может быть другим подходом для разбора измерений.

Без более подробно, однако, трудно дать удовлетворительный ответ, так как этот вопрос на самом деле довольно широкий топи c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...