смысл Option Explicit
состоит в том, чтобы вы явно объявили все переменные, которые вы используете, и именно это действительно происходит в Function ParseJSON(ByVal strJSON As String) As String
: strJSON As String
означает объявление переменной strJSON
you 'мы собираемся использовать внутри функции (и она также объявляет ее как String
типа)
, затем вы также даете ей значение, переданное вызывающим подпрограммой, и этоByVal
просто означает, что любое значение, которое предполагается для переменной функции strJSON
, не повлияет на вызывающую подпеременную (если таковая имеется, и это может быть случайно названо в честь strJSON
, но оно отличается от функции strJSON
) вы передали значение
, поэтому, если вы попробуете
Function ParseJSON(ByVal strJSON As String) As String
strJSON = Range("A1:A3")
'MsgBox (strJSON)
ParseJSON = strJSON
End Function
, вы получите время выполнения type mismatch error
, как только будет обработана строка strJSON = Range("A1:A3")
и поэтому, если вы попробуете
Sub Test()
Dim strJSON As String
strJSON = "Old String"
MsgBox (ParseJSON(Range("A1:A3")))
MsgBox (strJSON)
End Sub
, вы получите то же время выполнения type mismatch error
, как только будет обработана строка MsgBox (ParseJSON(Range("A1:A3")))