Freigeben über


XPath.SetValue-Methode (Excel)

Ordnet das angegebene XPath-Objekt einem ListColumn-Objekt oder einer Range-Auflistung zu. Wenn das XPath-Objekt zuvor dem ListColumn-Objekt oder der Range-Auflistung zugeordnet war, legt die SetValue-Methode die Eigenschaften des XPath-Objekts fest.

Syntax

Ausdruck. SetValue (Map, XPath, SelectionNamespace, Repeating)

Ausdruck Eine Variable, die ein XPath-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
Map Erforderlich XmlMap Die Zuordnungsinformationen, mit denen der zugeordnete Bereich verknüpft wird.
XPath Erforderlich String Ein gültiger XPath-Ausdruck, der Excel mitteilt, welche XML-Daten in diesem zugeordneten Bereich angezeigt werden sollen. Die XPath-Zeichenfolge kann auch gültige Filter enthalten. In diesem Fall wird nur eine Teilmenge der Daten, auf die der XPath zeigt, in diesem zugeordneten Bereich angezeigt.
SelectionNamespace Optional Variant Gibt alle Namespacepräfixe an, die im XPath-Argument verwendet werden. Dieses Argument kann ausgelassen werden, wenn das XPath-Objekt keine Präfixe enthält oder wenn das XPath-Objekt die internen Microsoft Excel-Präfixe verwendet.
Repeating Optional Variant Gibt an, ob das XPath-Objekt an eine Spalte in einer XML-Liste gebunden oder einer einzelnen Zelle zugeordnet werden soll. Legen Sie diesen Wert auf True fest, um das XPath-Objekt an eine Spalte in einer XML-Liste zu binden. Mit False wird das Erstellen einer sich nicht wiederholenden Zelle erzwungen. Wenn der Bereich größer als eine einzelne Zelle ist und False angegeben ist, tritt ein Laufzeitfehler auf.

Hinweise

Eine Erläuterung zur XPath-Unterstützung in Excel finden Sie unter der IsExportable-Eigenschaft des XMLMap-Objekts . Wenn der XPath-Ausdruck ungültig ist oder der angegebene XPath bereits zugeordnet wurde, tritt ein Laufzeitfehler auf.

Wenn Excel den Namespace nicht auflösen kann, tritt ein Laufzeitfehler auf.

Diese Methode erzeugt einen Fehler, wenn eine der folgenden Bedingungen zutrifft:

  • Der Bereich umfasst mehrere Spalten in der Tabelle.

  • Ein Teil des Bereichs umfasst bereits zugeordnete Zellen, und der Rest umfasst nicht zugeordnete Zellen.

  • Ein Teil des Bereichs umfasst eine Zuordnung, und ein anderer Teil des Bereichs umfasst eine andere Zuordnung oder einen anderen XPath von derselben Zuordnung.

Wenn der Bereich eine einzelne Zelle ist, erstellt Excel standardmäßig eine einzelne zugeordnete, nicht wiederholte zugeordnete Zelle. Der sich nicht wiederholenden Zelle ist keine Überschrift zugeordnet.

Die Ausnahme zur vorherigen Anweisung tritt auf, wenn sich der Einzelzellenbereich in einem ListObject-Objekt befindet. In diesem Fall werden Zuordnungsinformationen auf die gesamte Spalte angewendet.

Wenn sich der Bereich über mehrere Zellen erstreckt, erstellt Excel eine wiederholte XML-Liste. Excel behandelt den ausgewählten Bereich als alle Datenwerte. Wenn also die XML-Liste erstellt wird, wird der Bereich um eine Zeile nach unten verschoben, und die Kopfzeile wird in der Zelle platziert, die oben im Bereich belegt ist. Die Einfügezeile befindet sich am unteren Rand des verschobenen Bereichs.

Hinweis

  • Der Algorithmus von Excel zum Erkennen von Überschriften wird im Objektmodell nicht verwendet. Es wird davon ausgegangen, dass in der Tabelle keine Überschriften vorhanden sind.
  • Die Funktionen zum automatischen Zusammenführen und zum automatischen Erweitern sind deaktiviert, wenn im Objektmodell zugeordnete Bereiche erstellt werden.

Beispiel

Im folgenden Beispiel wird eine XML-Liste basierend auf der Contacts-Schemazuordnung erstellt, die an die Arbeitsmappe angefügt ist, und anschließend wird die SetValue-Methode verwendet, um jede Spalte an ein XPath-Objekt zu binden.

Sub CreateXMLList() 
    Dim mapContact As XmlMap 
    Dim strXPath As String 
    Dim lstContacts As ListObject 
    Dim objNewCol As ListColumn 
 
    ' Specify the schema map to use. 
    Set mapContact = ActiveWorkbook.XmlMaps("Contacts") 
     
    ' Create a new list. 
    Set lstContacts = ActiveSheet.ListObjects.Add 
         
    ' Specify the first element to map. 
    strXPath = "/Root/Person/FirstName" 
    ' Map the element. 
    lstContacts.ListColumns(1).XPath.SetValue mapContact, strXPath 
 
    ' Specify the second element to map. 
    strXPath = "/Root/Person/LastName" 
    ' Add a column to the list. 
    Set objNewCol = lstContacts.ListColumns.Add 
    ' Map the element. 
    objNewCol.XPath.SetValue mapContact, strXPath 
 
    strXPath = "/Root/Person/Address/Zip" 
    Set objNewCol = lstContacts.ListColumns.Add 
    objNewCol.XPath.SetValue mapContact, strXPath 
End Sub

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.