Я использую VBA 7.1.1092, и у меня очень странное (но я, вероятно, упускаю что-то очевидное) поведение. Это код:
Function test(s As String) As String
test = s
End Function
Function test2(p As String) As String
Dim s As String
Dim t As String
s = p
test2 = test(s)
End Function
Function test1(p As String) As String
Dim s, t As String
s = p
test1 = test(s)
End Function
Функция test2 компилируется, в то время как компиляция test1 завершается с ошибкой по инструкции
test1=test(s)
с ошибкой «s несовместима с ByRef». Я думал, что объявления в test1 и test2 были идентичны. Итак, что мне не хватает? Заранее спасибо