2016-07-19 2 views
-1

Я получаю ошибку времени выполнения 91 - переменная объекта или с переменной блока, не заданной при попытке обновления, и XML с помощью Excel VbscriptОшибка времени выполнения 91 - Объектная переменная или с переменной блока не установлена ​​- обновление XML из Excel

Sub UpdateXML() 
    Call fnUpdateXMLByTags 
    End Sub 

    Function fnUpdateXMLByTags() 

    Set xmldoc = CreateObject("Microsoft.XMLDOM") 
    xmldoc.Load "F:\XML\XML1.xml" 
    oMsgId = "15544216089S01F15544100002396000002" 
    Set nMsgId = xmldoc.SelectSingleNode("//AcctSwtchBtch/GrpHdr/MsgId") 
    nMsgId.Text = oMsgId 
    strResult = xmldoc.Save("F:\XML\XML1.xml") 

    End Function 
+0

На какой строке возникает ошибка? –

+0

Это не подсветка строки –

+1

Вы кодируете в vba? Если да, пожалуйста, запустите пошаговое выполнение (с F8) и сообщите нам, где это не удалось. –

ответ

0

Функция должна что-то вернуть. Пример:

Function FileExists(FilePath As String, FileName As String) As Boolean 

Dim CurrentDir As String 
CurrentDir = CurDir ' Used to set the CurDir back to what it was 

If FilePath <> "" Then ChDir FilePath 

If Dir(FileName) <> "" Then 
    FileExists = True 
Else 
    FileExists = False 
End If 
ChDir CurrentDir 

End Function 

Предлагаю изменить его с помощью функции на вспомогательное устройство.

+0

Это все еще не работает: Sub UpdateXML() Set xmldoc = CreateObject ("Microsoft.XMLDOM") xmldoc.Load "F: \ XML \ XML1.xml" oMsgId = "15544216089S01F15544100002396000002" Set nMsgId = xmldoc.SelectSingleNode ("// AcctSwtchBtch/GrpHdr/MsgId") «Установить текстовый узел с новым значением nMsgId.Text = oMsgId strResult = xmldoc.Save (" F: \ XML \ XML1.xml ") End Sub –

+0

Они отметили квест ион VBScript не VBA. – Lankymart

0

Я полагаю, что вы установили без Dim:

Dim xmldoc As Object 
Set xmldoc = CreateObject("Microsoft.XMLDOM") 
... 

Я не уверен nMsgId типа, так комментируют заключительную часть от "Set nMsgId" и:

Debug.Print TypeName(xmldoc.SelectSingleNode("//AcctSwtchBtch/GrpHdr/MsgId")) 

с правильный тип, вы можете создать правильный экземпляр nMsgId

+0

сделал это, но все же такая же ошибка –

+0

Они отметили вопрос VBScript не VBA. – Lankymart

Смежные вопросы

 Смежные вопросы