Ich habe komplexe XSD. In Excel-Entwickler, in XML Abschnitt kann ich auf "source" klicken und XSD zu Datenquelle zuordnen, dann Zuordnung von Knoten zu bestimmten Zellen, Zeilen, etc.Excel 2013 - VBA XML-Bindung beim Neustart unterbrochen
Ich kann dann Daten eingeben und exportieren XML wie erwartet, nett. Wenn ich gespeichertes XLS wiederöffne, passiert etwas Seltsames und Excel sagt, dass meine XML-Karte kaputt ist und bittet darum, eine kaputte Karte zu entfernen, und zeigt einen Knoten an, den er für falsch hält. Aber alle Optionen sind grau dargestellt und die einzige Option, ich fand, ist die Karte über VBA zu entfernen,
ActiveWorkbook.XmlMaps("JPK_mapa").Delete
Aber wenn Karte entfernt werden alle Zuordnungen sind verschwunden und ich habe Karte erneut hinzufügen und manuell alle Zuordnungen tun. Es ist nicht schwer für mich, aber normale Benutzer können Probleme damit haben und ich möchte ihnen einfach XLS geben, um mit den Daten zu füllen.
Ich kann XSD nicht ändern, habe keinen Einfluss auf seinen Inhalt, also nahm ich an, dass ich damit leben und Excel lehren muss, diese Zuordnung irgendwie zu entfernen und beim Autostart hinzuzufügen. Da es viele Mappings gibt und es nur ein paar Klicks in Excel gibt, würde ich das gerne als Makro aufzeichnen. Aber wenn ich die Aufnahme einschalte, zeichnet es keine Mappings auf, die ich mache.
Q1: Gibt es eine Möglichkeit, Mapping-Generation aufzuzeichnen? Oder gibt es eine Möglichkeit, diesen Prozess irgendwie zu automatisieren?
Ich fand auch interessante Sache. Wenn ich meine map-broken xlsx als zip öffne und xmlMaps.xml daraus entferne, kann ich, nachdem ich xls wieder geöffnet habe, XML-Datenquelle öffnen, und wenn ich mein xsd hinzufüge, werden alle Mappings wiederhergestellt und korrekt mit Zellen in xls verbunden (fett markiert) im beigefügten Bild). Das führt mich dazu, Frage 2 zu stellen.
Q2: Gibt es eine Möglichkeit, die Zuordnungen in VBA auf die Art und Weise zu entfernen, dass, wenn es erneut hinzugefügt wird, es die Zuordnungen merken würde?
Ich hoffe, Sie können mir einen Rat geben, danke.
Sobald Sie die Karte konfiguriert haben, bevor die Datei geschlossen wird, versuchen 'ActiveWorkbook.XmlMaps tun ("JPK_mapa") Export. ("C: \ Pfad \ file.xml zu \", True)', Versuchen Sie dann nach dem erneuten Öffnen/Löschen eine ähnliche 'Import'-Methode.Neugierig zu sehen, ob das funktioniert (das ist außerhalb meines Wissens, also kann ich wahrscheinlich nicht viel mehr als das helfen) –
Danke, das habe ich schon ausprobiert. Es scheint, dass der Export XML-Daten exportieren nicht die Schema-Mappings :-( – norbi771
Haben Sie mit 'ActiveWorkbook.XmlMaps (" JPK_mapa "). Schemata"? –