Function Schaltfläche1_Klicken()
Dim Zeile As Integer
Zeile = 0
Dim Node As String
Dim pfad As String
Set dlg = Application.FileDialog(msoFileDialogOpen)
dlg.Title = "Bitte geben Sie den Pfad an"
dlg.ButtonName = "Laden"
dlg.Filters.Clear
dlg.Filters.Add "XML", "*.xml"
If dlg.Show Then
pfad = dlg.SelectedItems(1)
End If
If pfad = "" Then
MsgBox "Sie haben keine Datei ausgewählt."
End If
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.SetProperty "SelectionLanguage", "XPath"
xmlDoc.Async = False
xmlDoc.Load (pfad)
While Zeile <> 100
Zeile = Zeile + 1
Node = Cells(Zeile, 1).Value
Node = Replace(Node, ".", "/")
If Node = "" Then
Cells(Zeile, 2).Value = " "
Else
Set nodeXML = xmlDoc.getElementsByTagName(Node)
For i = 0 To nodeXML.Length - 1
Cells(Zeile, i + 2).Value = nodeXML(i).Text
If nodeXML(i).Text = "" Then
MsgBox ("Keinen Wert in Node: " & Node & " (Zeile: " & Zeile & ") gefunden. " & nodeXML(i).Text)
End If
Next
End If
Wend
End Function
Здравствуйте сообщества,VBA Looped MsgBox появляется только один раз
я написал этот простой код, чтобы импортировать XML_Nodes в лист Excel.
Функция должна начинаться каждый раз, когда я нажимаю кнопку Schaltfläche1
, а затем отображает диалоговое окно «Файл», чтобы пользователь мог «импортировать» XML-файлы.
Функция теперь переходит к повторению каждого узла, который он может найти в Листе (A-1
, до A-X
) и записать его в файл excel.
Кодекс до сих пор работает нормально, но:
Я хочу, чтобы сообщение вол всплывал, когда узел пуст. На мгновение он просто появляется один раз.
Надеюсь, вы можете мне помочь.
на первый взгляд, если у вас нет сообщения об ошибке, я не вижу причин, почему она отображает только MsgBox один раз, если у вас есть несколько пустых 'nodeXML (I). Text'. Ваш код выглядит правильно –
Я вижу много необъявленных переменных и ошибок в именах переменных, таких как 'Dim pfas As String', а затем вы используете' pfad = ..'. Я предлагаю вам включить «Инструменты, параметры, Требовать переменную Объявление». –
@PaulOgilvie Я включил опцию и объявил все переменные/исправил опечатку в pfad. Однако это не влияет на ошибку Msg. –