Необязательный аргумент для пользовательской функции измерения листа не работает - PullRequest
0 голосов
/ 26 июня 2018

У меня есть две пользовательские функции Excel, которые работают независимо, но когда я объединил их с необязательным аргументом, часть его больше не работает.

Функции, которые я тестирую, следующие:

  • Функция PageWidth1 ()

  • Функция PageWidth2 (MyArea As Range)

  • Функция PageWidth3 (необязательный диапазон MyArea As Range)

Их код следующий:

Function PageWidth1()

    Dim r As Range
    Application.Volatile

    Set r = Application.Caller.Parent.Range(Application.Caller.Parent.PageSetup.PrintArea)
        Debug.Print r.Width
            PageWidth1 = r.Width

End Function

И

Function PageWidth2(MyArea As Range)

    Dim r As Range
    Application.Volatile

    Set r = Range(MyArea.Address)
        Debug.Print r.Width
            PageWidth2 = r.Width

End Function

И

Function PageWidth3(Optional MyArea As Range)

    Dim r As Range
    Application.Volatile

    If Not (IsMissing(MyArea)) Then

        Set r = Range(MyArea.Address)
            Debug.Print r.Width
                PageWidth3 = r.Width

    Else
        Set r = Application.Caller.Parent.Range(Application.Caller.Parent.PageSetup.PrintArea)
            Debug.Print r.Width
                PageWidth3 = r.Width

    End If
End Function

= PageWidth1 (), PageWidth2 (MyRange) и PageWidth3 (MyRange) все дают действительные результаты.

= PageWidth3 () выдает и ошибка.

Куда я иду не так?

1 Ответ

0 голосов
/ 30 июня 2018

Переменная, являющаяся запрошенным диапазоном, должна быть определена как строка, а не как диапазон.

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