Вы пытались заключить квадратные скобки вокруг параметра отправки следующим образом?
Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP") xmlhttp.open "POST", url, False
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.setRequestHeader "Content-Length", Len(parameters)
xmlhttp.Send (parameters)
Я думаю, что происходит потому, что, поскольку вы отправляете параметр ByRef, объект ServerXMLHTTP запутывается при выборе правильной перегрузкиметод отправки.Он думает, что вы отправляете указатель на IStream, когда на самом деле вы пытаетесь отправить это BSTR.Помещая параметр в скобки, он заставляет компилятор отправлять переменную ByVal вместо ByRef, и, таким образом, компилятор понимает, что вы не отправляете указатель, и выбирает правильную перегрузку функции Send.