MS Word VBA пытается заполнить комбинированный список данными из http-вызова. - PullRequest
2 голосов
/ 19 января 2011

Я использую следующий код для заполнения комбинированного списка в Word 2003.

Private Sub UserForm_Initialize()
ComboBox1.List = Array("Red", "Green", "Yellow", "Blue")
End Sub

То, что я хотел бы сделать, это получить данные динамически через вызов http. Эта другая функция, кажется, работает для получения данных через http

Dim MyRequest As Object

Set MyRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
MyRequest.Open "GET", _
"http://localhost:8500/test7.htm"

' Send Request.
MyRequest.Send

'And we get this response
MsgBox MyRequest.ResponseText

test7.htm просто содержит

"Red", "Green", "Yellow", "Blue"

Я надеялся объединить два, но ниже не работает

Private Sub UserForm_Initialize()
Dim MyRequest As Object

Set MyRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
MyRequest.Open "GET", _
"http://localhost:8500/test7.htm"

' Send Request.
MyRequest.Send


ComboBox1.List = Array(MyRequest.ResponseText)
End Sub

Любая помощь для новичка VBA приветствуется

1 Ответ

1 голос
/ 21 января 2011

Текст ответа должен быть простой строкой через запятую , что-то вроде

Красный, Зеленый, Желтый, Синий

Таким образом, вы можете использовать следующий метод для заполнения ComboBox:

Private Sub populateComboBox(ByRef combo As ComboBox, ByRef html As String)
    Dim arrayValues() As String, index As Integer
    arrayValues = Split(Trim(html), ",")
    For index = LBound(arrayValues) To UBound(arrayValues)
        combo.AddItem (arrayValues(index))
    Next
End Sub

Для вызова метода вы можете использовать следующее предложение.

Call populateComboBox(Combo1, MyRequest.ResponseText)
...