2017-02-20 101 views
0

Я пытаюсь вызвать веб-службу REST в модуле VBA для заполнения некоторых закладок в документе Word. По какой-то причине код зависает на этой линииФункция VBA не может найти закладку

Set cCap1 = ActiveDocument.Bookmarks("CCAP1").Range 
cCap1.Text = keyResult.SelectSingleNode("//cCap").Text 

говоря, что закладка «CCAP1» не существует в документе, когда на самом деле отлично виден в списке закладок, как вы видите здесь

this image

Я проверил веб-сервис и вернул действительный XML-документ, который не должен представлять никаких проблем.

После вы найдете полный VBA код модуля

Public Static Sub callRestService() 

Dim idC As String 
Dim custDate As String 
Dim query As String 

idC = mdlFormVal.getIdC 
custDate = mdlFormVal.getCustDate 

query = "http://path/to/webservice/service?key=" + idC 

Dim keyResult As New MSXML2.DOMDocument60 
Dim keyService As New MSXML2.XMLHTTP60 

keyService.Open "GET", query, False 
keyService.send 

keyResult.LoadXML (keyService.responseText) 

Dim cRas As Range 
Dim cRas1 As Range 
Dim cRas2 As Range 
Dim cRas3 As Range 
Dim cRas4 As Range 
Dim cCap As Range 
Dim cCap1 As Range 
Dim cCap2 As Range 
Dim cCf As Range 
Dim cCf1 As Range 
Dim cInd As Range 
Dim cInd1 As Range 
Dim cInd2 As Range 
Dim cLoc As Range 
Dim cLoc1 As Range 
Dim cLoc2 As Range 
Dim cPIva As Range 
Dim cPIva1 As Range 
Dim cPrvn As Range 
Dim cPrvn1 As Range 
Dim cPrvn2 As Range 

Dim cusDate As Range 

Set cRas = ActiveDocument.Bookmarks("CRAS").Range 
cRas.Text = keyResult.SelectSingleNode("//cRas").Text 
Set cRas1 = ActiveDocument.Bookmarks("CRAS1").Range 
cRas1.Text = keyResult.SelectSingleNode("//cRas").Text 
Set cRas2 = ActiveDocument.Bookmarks("CRAS2").Range 
cRas2.Text = keyResult.SelectSingleNode("//cRas").Text 
Set cRas3 = ActiveDocument.Bookmarks("CRAS3").Range 
cRas3.Text = keyResult.SelectSingleNode("//cRas").Text 
Set cRas4 = ActiveDocument.Bookmarks("CRAS4").Range 
cRas4.Text = keyResult.SelectSingleNode("//cRas").Text 
Set cCap = ActiveDocument.Bookmarks("CCAP").Range 
cCap.Text = keyResult.SelectSingleNode("//cCap").Text 
Set cCap1 = ActiveDocument.Bookmarks("CCAP1").Range 
cCap1.Text = keyResult.SelectSingleNode("//cCap").Text 
Set cCap2 = ActiveDocument.Bookmarks("CCAP2").Range 
cCap2.Text = keyResult.SelectSingleNode("//cCap").Text 
Set cCf = ActiveDocument.Bookmarks("CCF").Range 
cCf.Text = keyResult.SelectSingleNode("//cCf").Text 
Set cCf1 = ActiveDocument.Bookmarks("CCF1").Range 
cCf1.Text = keyResult.SelectSingleNode("//cCf").Text 
Set cInd = ActiveDocument.Bookmarks("CIND").Range 
cInd.Text = keyResult.SelectSingleNode("//cInd").Text 
Set cInd1 = ActiveDocument.Bookmarks("CIND1").Range 
cInd1.Text = keyResult.SelectSingleNode("//cInd").Text 
Set cInd2 = ActiveDocument.Bookmarks("CIND2").Range 
cInd2.Text = keyResult.SelectSingleNode("//cInd").Text 
Set cLoc = ActiveDocument.Bookmarks("CLOC").Range 
cLoc.Text = keyResult.SelectSingleNode("//cLoc").Text 
Set cLoc1 = ActiveDocument.Bookmarks("CLOC1").Range 
cLoc1.Text = keyResult.SelectSingleNode("//cLoc").Text 
Set cLoc2 = ActiveDocument.Bookmarks("CLOC2").Range 
cLoc2.Text = keyResult.SelectSingleNode("//cLoc").Text 
Set cPIva = ActiveDocument.Bookmarks("CPIVA").Range 
cPIva.Text = keyResult.SelectSingleNode("//cPIva").Text 
Set cPIva1 = ActiveDocument.Bookmarks("CPIVA1").Range 
cPIva1.Text = keyResult.SelectSingleNode("//cPIva").Text 
Set cPrvn = ActiveDocument.Bookmarks("CPRVN").Range 
cPrvn.Text = keyResult.SelectSingleNode("//cPrvn").Text 
Set cPrvn1 = ActiveDocument.Bookmarks("CPRVN1").Range 
cPrvn1.Text = keyResult.SelectSingleNode("//cPrvn").Text 
Set cPrvn2 = ActiveDocument.Bookmarks("CPRVN2").Range 
cPrvn2.Text = keyResult.SelectSingleNode("cPrvn").Text 

Set cusDate = ActiveDocument.Bookmarks("CUSTDATE").Range 
cusDate.Text = custDate 

End Sub 

Кто-нибудь сталкивался что-то вроде этого? Спасибо за ваше время.

ответ

0

Мне удалось решить проблему «просто», воссоздав все закладки документов.