Ich bräuchte mal eure Hilfe bei den Schleifen. Es geht darum, aus einer Excel-Tabelle eine XML Datei zu generieren.
Grundsätzlich habe ich das Ganze schon vernünftig hinbekommen, und die XML wird fast wie gewünscht erstellt.
Allerdings hänge ich an der Stelle "auswahlset name" und "guid" fest:
<auswahlset name="""; Cells(z, 8).Value & """ guid=""1234-5678-9000-5555-88888"">"
Es gibt verschiedene Auswahlsets in der Excel-Tabelle in Spalte H2:H1000, die guid sollte auch immer individuell, pro Auswahlset Variante vergeben werden.
Auswahlset10
Auswahlset20
Auswahlset30
Auswahlset40
So wie ich meinen Code derzeit erstellt habe, beachtet er sozusagen nur "Auswahlset10" mit "guid=1234-5678-9000-5555-88888".
Leider habe ich noch nicht so viel Übung mit den Schleifen. Vielleicht könnt ihr mir da weiter helfen. Danke euch vorab.
Sub Excel_to_XML_Export()
Dim strname As String
Dim strPth As String
Dim z As Long
Dim lngZeile As Long
strPth = "C:\Desktop\" 'Speicherpfad eintragen
strname = "myname.xml"
lngZeile = auswahl("A" & Rows.Count).End(xlUp).Row
Open strPth & strname For Output As #1
'***************************
'XML Kopf - das passt
'***************************
Print #1, "<?xml version=""1.0"" encoding=""utf-8""?>"
Print #1, "<exchange xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:noNamespaceSchemaLocation=""http://download.autodesk.com/us/navisworks/schemas/nw-exchange-12.0.xsd"" units=""m"" filename=""myname.nwd"" filepath=""C:\Desktop\"">"
Print #1, " <auswahlsets>"
'****************************************
'der Teil soll mit in die äußere Schleife
'****************************************
For z = 2 To 2
Print #1, " <auswahlset name="""; Cells(z, 8).Value & """ guid=""1234-5678-9000-5555-88888"">"
Next z
Print #1, " <findspec mode=""all"" disjoint=""1"">"
Print #1, " <conditions>"
'*****************************************
'innere Schleife - die funktioniert soweit
'*****************************************
For z = 2 To lngZeile
Print #1, " <condition test=""value"" flags=""5"">"
Print #1, " <category>"
Print #1, " <name internal=""Attributes""> element </name>"
Print #1, " </category>"
Print #1, " <property>"
Print #1, " <name internal=""Attribute"">Line </name>"
Print #1, " </property>"
Print #1, " <value>"
Print #1, " <data type=""vstring"">" & "*"; Cells(z, 6).Value; "*" & "</data>"
Print #1, " </value>"
Print #1, " </condition>"
Next z
'****************************************
'der Teil soll mit in die äußere Schleife
'****************************************
Print #1, " <locator>/</locator>"
Print #1, " </findspec>"
Print #1, " </auswahlset>"
'***************************
'XML Fuss - das passt
'***************************
Print #1, " </auswahlsets>"
Print #1, " </exchange>"
Close #1
End Sub
|