Zusätzlich zu dem was ralf_b bereits genannt hat, ...
Wenn es sich bei der Tabelle um einen Smart Table handelt:
(de: Intelligente Tabelle = formatierter Bereich mit STRG+T)
Dim tblSource As Excel.ListObject
Dim rngDataCell As Excel.Range
Set tblSource = Worksheet("Tabelle1").ListObjects("Table1")
' Wert in der ersten Datenzeile in der Spalte "Betrag"
Set rngDataCell = tblSource.DataBodyRange(1, tblSource.ListColumns("Betrag").Index)
' Verwendungsbeispiel:
rngDataCell.Value = ...
Den genauen Namen vom Smart Table findet man über das Menü in den Table Tools - ACHTUNG: Der Name vom Smart Table ist nicht zu verwechseln mit dem Namen des Tabellenblattes, auf dem sich der Smart Table befindet; ein Tabellenblatt kann mehrere Smart Tables beinhalten und die heißen dann alle unterschiedlich.
Damit der Reiter sichtbar ist, muss man den entsprechenden Smart Table ausgewählt haben - mindestens eine Zelle in dem Bereich.
Ansonsten kann man noch danach suchen:
Dim wksSource As Excel.Worksheet
Set wksSource = Worksheets("Tabelle1")
' suche in der ersten Zeile des Tabellenblattes nach der Zelle mit dem Inhalt "Betrag"
Set rngHeaderCell = wksSource.Rows(1).Find( _
"Betrag", LookIn := xlValues, LookAt := xlWhole, SearchOrder := xlByRows, MatchCase := false)
' Verwendungsbeispiel:
' Dim rngDataCell As Excel.Range
' Set rngDataCell = wksSource.Cells(2, rngHeaderCell.Column)
' rngDataCell.Value = ...
' Wert in der ersten Datenzeile (= Zeile 2, anhand deines Beispiels) in der zuvor ermittelten Spalte
wksSource.Cells(2, rngHeaderCell.Column).Value = ...
Wie du siehst, ist diese Variante etwas komplizierter/unhandlicher als die mit einem Smart Table, weshalb generell dazu geraten wird Smart Tables zu verwenden. (allgemein haben die noch andere Vorteile)
Grüße
PS: Die Beispiele sind aus dem Gedächtnis geschrieben und ungetestet, d.h. keine Garantie das es sich kompilieren lässt. Außerdem müssen die Bezeichner - z.B. der Name des Tabellenblattes - entsprechend deiner Mappe angepasst werden.
|