В ответ на запрос POST сервер возвращает очень простой объект JSON, который может указывать на успех или неудачу загрузки.
Объектом JSON может быть либо {config_version: N}, чтобы указать успех, либо {исключение: Причина} для обозначения ошибки.
Я обрабатываю ответ следующим образом:
json = objHTTP.responseText
Set sc = CreateObject("ScriptControl")
sc.Language = "JScript"
Set o = sc.Eval("(" + json + ")")
On Error GoTo Exception:
' try to use config_version property
Util.SetConfigData "version", o.config_version
Exit Function
Exception:
If o.Exception = "config_not_valid" Then
' one kind of exception - do accordingly
Else
' another kind of exception
End If
Проблема, с которой я сталкиваюсь, состоит в том, что редактор VBA Excel 2010 использует o.exception
с большой буквыo.Exception
!В окне Watch
я вижу свойство exception
, но не могу получить к нему доступ.Как я могу заставить редактор прекратить вводить заглавные буквы имени свойства?Есть ли другой синтаксис для доступа к свойствам в VBA?
РЕДАКТИРОВАТЬ : Чтобы лучше проиллюстрировать, что здесь происходит, два снимка экрана.
![enter image description here](https://i.stack.imgur.com/2HD26.png)
Как видите, o
имеет свойство под названием exception
.При попытке получить к нему доступ с помощью o.Exception
, он вызывает ошибку 438.
![enter image description here](https://i.stack.imgur.com/D9360.png)
Так как у меня есть контроль над бэкэндом, я изменил ответ на return {Exception:whatever}
(не могу сделатьэто постоянно).Теперь у VBA нет проблем с выбором свойства.
Как это возможно, если компилятор VBA нечувствителен к регистру, как это предложил Жан-Франсуа Корбетт?