Name für spalten definieren
18.11.2003 21:46:45
Frank S.
ich habe da mal ein Problem.
Ich habe ein Makro erstellt welches unter Excel auch sehr gut klappt.
Dim anzahl, tabelle As String
anzahl = Trim(Str(Cells(Rows.Count, 1).End(xlUp).Row))
tabelle = "=Tabelle1!R1C1:R" + anzahl + "C5"
ActiveWorkbook.Names.Add Name:="daten", RefersToR1C1:= _
tabelle
Dieses Makro definiert für die Spalten A bis E und für alle beschriebenen Zeilen
einen Namen "daten".
Nun möchte ich aber dieses Makro direkt mit einem Visual Basic Programm ausführen. Der Code ist fast analog:
Dim xlbook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim anzahl As String
Dim tabelle As String
Set xlbook = GetObject(filename.Text)
Set xlSheet = xlbook.Worksheets("Tabelle1")
anzahl = Trim(Str(xlSheet.Cells(xlSheet.Rows.Count, 1).End(xlUp).Row))
tabelle = "=Tabelle1!R1C1:R" + anzahl + "C5"
xlbook.Names.Add Name:="daten", RefersToR1C1:=tabelle
Doch dieses Programm hat nicht gewünschten Effekt. Es wird zwar ein Name "daten" definiert, zu sehen in Einfügen->Name->Definieren, jedoch
wird dort als Bezug "=Tabelle1!R1C1:R427C5" angezeigt. Dies hat scheinbar keinen Effekt auf die Spalten.
Bei meinem oberen VBA Makro wird bei Einfügen->Name->Definieren auch daten angezeigt hierbei aber mit dem Bezug =Tabelle1!$A$1:$E$427.
Und dies hat genau den gewünschten Effekt auf die Spalten.
Wenn ich nun versuche für tabelle = "=Tabelle1!R1C1:R" + anzahl + "C5"
durch
tabelle = "=Tabelle1!$A$1:$E$" + anzahl
zu ersetzen funktoniert es nicht da RefersToR1C1:= .. diesen Bezug nicht verarbeitet.
Gibt es einen anderen Weg "=Tabelle1!$A$1:$E$" + anzahl in den Code einzufügen, oder irgendeine andere Möglichkeit über VB meinen Spalten einen Namen zu definieren??
danke
Frank S.