visual una sub run mandar macro llamar funcion from desde and vba syntax-error call

vba - una - public sub visual basic



Llamar a un Sub en VBA (2)

Este es mi guión simplificado:

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

La llamada de CatSubProduktAreakum se marca en rojo como un "error de sintaxis". No entiendo el error. Es una llamada sub-rutina simple con dos argumentos. ¿Por qué VBA no acepta la llamada?


Para cualquiera que siga llegando a esta publicación, la otra opción es simplemente omitir los paréntesis:

Sub SomeOtherSub(Stattyp As String) ''Daty and the other variables are defined here CatSubProduktAreakum Stattyp, Daty + UBound(SubCategories) + 2 End Sub

Las palabras clave de Call solo están realmente en VBA para compatibilidad hacia atrás y no son realmente necesarias.

Sin embargo, si decides utilizar la palabra clave de Call , entonces debes cambiar tu sintaxis para que se adapte.

''// With Call Call Foo(Bar) ''// Without Call Foo Bar

Ambos harán exactamente lo mismo.

Dicho esto, puede haber instancias en las que el uso de paréntesis innecesariamente haga que las cosas se evalúen donde no se pretendía (como paréntesis hacen esto en VBA) así que con eso en mente la mejor opción es probablemente omita la palabra clave Call y los paréntesis


Tratar -

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

En cuanto a la razón, esto de MSDN a través de esta pregunta: ¿Qué hace la palabra clave Call en VB6?

No es necesario que use la palabra clave Call cuando llama a un procedimiento. Sin embargo, si usa la palabra clave de llamada para llamar a un procedimiento que requiere argumentos, la lista de argumentos debe estar entre paréntesis. Si omite la palabra clave de llamada, también debe omitir los paréntesis alrededor de la lista de argumentos. Si utiliza la sintaxis de llamada para llamar a cualquier función intrínseca o definida por el usuario, el valor de retorno de la función se descarta.