Probleme mit Bearbeitung einer xml-Datei in Excel VBA
17.11.2025 02:49:11
Gerry
In der XML-Datei (VirtualDJ Local Database v6.xml) von Virtual DJ sind Liedinformationen gespeichert.
Die Liedinformtionen wurden in einer Exceldatei gespeichert.
Da es sich um zirka 50k Lieddateien handelt soll die Übertragung der Liedinfos aus der Exceldatei in die XML-Datei per VBA erfolgen.
Leider gibt es Probleme.
Variante 1, direkt mit Excel
Öffne ich die Datei ganz normal mit Excel als "XML-Tabelle", kommt sofort die Meldung "Die angegebene XML-Quelle bezieht sich nicht auf das Schema. Excel wird ein Schema erstellen, das auf den XML-Quelldaten basiert."
Die XML-Datei wird danach als Tabelle - im Kompatibilitätsmodus - mit den Feldnamen als Überschriften angezeigt.
Will ich die XML-Datei mit den Änderungen speichern, erscheint die Fehlermeldung "Die XML-Daten können nicht exportiert oder gespeichert werden. Die XML-Zuordnungen in diesem Arbeitsblatt sind nicht exportierbar."
Variante 2 mit VBA über Excel
Öffne ich die XML-Datei mittels VBA, werden zwar alle Liedinfos in einer Exceltabelle angezeigt, jedoch werden die Feldnamen nur als Überschrift in Zeile 2 angezeigt.
Die XML-Datei wird auch nur "Schreibgeschützt" und im "Kompatibilitätsmodus" geöffnet.
Die Auswahlpfeile bei den Spaltenüberschriften (wie bei öffnen von Excel als XML-Tabelle) fehlen.
Die Liedinfos beginnen in Zeile 3.
Der VBA-Code zum öffnen
Function xlmtest_oeffnen()
ThisFolder = "D:\"
ThisFile = Dir(ThisFolder & "VirtualDJ Local Database v6.xml")
'Kontrolle ob eine Datei vorhanden ist
If Dir(ThisFolder & "\" & ThisFile) = "" Then
MsgBox "ordner leer"
' Exit Sub
End If
'öffnen der Quelldatendatei
Workbooks.Open Filename:=ThisFolder & "\" & ThisFile
ThisFile = Dir
End Function
Will ich die XML-Datei nach den änderungen speichern, erscheint das Auswahlfenster "Speichern unter", und es wird nach einem Dateinamen gefragt.
Wieso die Frage erscheint, obwohl im Script ein Dateiname festgelegt wird, ist mir unklar.
Gebe ich einen anderen Dateinamen als den gespeicherten an, da ja die Datei mit Schreibschutz geöffnet wurde, kann die Datei gespeichert werden.
Nach dem Umbenennen der gespeicherten XML-Datei und dem Öffnen vom Programm Virtual DJ kommt die Meldung, daß die Datenbank beschädigt ist und repariert werden muß.
Nach dem reparieren der datenbank sind alle gespeicherten Infos weg.
Function XML-Datei speichern
Function xlmtest_speichern()
Dim Datei As Variant
Application.EnableEvents = False
Datei = Application.GetSaveAsFilename("D:\VirtualDJ Local Database v62.xml")
ActiveWorkbook.SaveAs Filename:=Datei, addtomru:=True
End Function
Was übersehe ich, bzw. was mache ich falsch?
Bitte um Hilfe
Gerry
Anzeige