2012-05-03 8 views
5

Próbuję utworzyć prostą funkcję dziennika w moim projekcie Excel VBA.dlaczego vba chce, bym użył przydziału dla funkcji/poddzierżawienia?

Chcę przekazać aktualną nazwę procedura i ciąg

funkcja log wygląda obecnie tak:

Public Sub log(procName As String, message As String) 
    dolog (procName & ": " & message) 
End Sub 

staram się nazwać tak:

Dim C_PROC_NAME As String 
C_PROC_NAME = "autoSave" 
log(C_PROC_NAME, "test") 

To nie działa, to mi się wydaje, że robię to tak:

test = log(C_PROC_NAME, "test") 

i zainicjowania C_PROC_NAME jak to robi NIE pracy, a także:

DIM C_PROC_NAME As String = "autoSave" 

Odpowiedz

5

Jeśli chcesz zadzwonić sub z parens, trzeba umieścić Call kluczowe w przód:

Dim C_PROC_NAME As String 
C_PROC_NAME = "autoSave" 
Call log(C_PROC_NAME, "test") 

Możesz też zadzwonić bez parens:

Dim C_PROC_NAME As String 
C_PROC_NAME = "autoSave" 
log C_PROC_NAME, "test" 
Powiązane problemy