Вызов сабвуфера в VBA - PullRequest
       5

Вызов сабвуфера в VBA

40 голосов
/ 10 октября 2011

Это мой упрощенный скрипт:

    Sub SomeOtherSub(Stattyp As String)
        'Daty and the other variables are defined here

        CatSubProduktAreakum(Stattyp, Daty + UBound(SubCategories) + 2)

    End Sub

    Sub CatSubProduktAreakum(Stattyp As String, starty As Integer)

    'some stuff

    End Sub

Вызов CatSubProduktAreakum помечен красным как «ошибка синтаксиса».Я не понимаю ошибку.Это простой вызов подпрограммы с двумя аргументами.Почему VBA не принимает вызов?

Ответы [ 2 ]

9 голосов
/ 15 февраля 2017

Для тех, кто все еще посещает этот пост, другой вариант - просто опустить круглые скобки:

Sub SomeOtherSub(Stattyp As String)
    'Daty and the other variables are defined here

    CatSubProduktAreakum Stattyp, Daty + UBound(SubCategories) + 2

End Sub

Ключевые слова Call действительно только в VBA для обратной совместимости и фактически не требуются.

Если, однако, вы решите использовать ключевое слово Call, вам придется изменить свой синтаксис на подходящий.

'// With Call
Call Foo(Bar)

'// Without Call
Foo Bar

Оба будут работать одинакововещь.


Тем не менее, могут быть случаи, когда нужно следить за тем, где использование скобок излишне приведет к тому, что вещи будут оцениваться там, где вы этого не предполагали (как это делается в VBA в скобках)поэтому, учитывая это, лучшим вариантом, вероятно, является опускание ключевого слова Call и скобок

...