Namen definieren, m. Bereich.Verschieben - VBA
15.12.2007 08:59:00
Peter
Ich möchte verschiedene Bereiche in einer umfangreichen Tabelle mit Namen benennen.
Dazu habe ich in Tabelle "Namen" in der Spalte A die vorgesehenen Namen und in Spalte B die Formel.
Da die Anzahl Zeilen in den betreffenden Bereichen variabel sind und ich jeweils nicht die gesamte Spalte mit dem Namen benennen will , habe ich in der Spalte B eine etwas unübliche Formel vorgesehen, die jedoch funktioniert, wenn ich sie manuell bei "Namen definieren" - "bezieht sich auf" eintrage.
Da es eine ganze Menge Bereiche sind, möchte ich diese mit untenstehendem Code definieren. Aus für mich nicht verständlichem Grund stockt der Code schon bei der Abarbeitung der ersten Zeile mit dem Hinweis "die eingegebene Formel enthält einen Fehler" - der für mich allerdings nicht ersichtlich ist. Der Wert ANF ist mit 1 und der Wert END mit 1300 definiert.
Debug.print ergibt folgende Ausgabe:
_01K =BEREICH.VERSCHIEBEN('01'!$A$1;ANF-1;;END-ANF+1;)
Wahrscheinlich muss es sich um einen läppischen Fehler handeln. Wer kann mir helfen?
Danke, Peter
Inhalt Zelle A1 in Tabelle Namen
01K
Inhalt Zelle B1 in Tabelle Namen
'=BEREICH.VERSCHIEBEN('01'!$A$1;ANF-1;;END-ANF+1;)
Sub namen() Dim strName As String Dim strString As String Dim lngZeile As Long lngZeile = 1 With Sheets("Namen") Do While .Cells(lngZeile + 1, 1) "" strName = .Cells(lngZeile, 1) If strName = "" Then Exit Sub strString = .Cells(lngZeile, 2) Debug.Print strName & " " & strString ActiveWorkbook.Names.Add Name:=strName, RefersToR1C1:= _ strString lngZeile = lngZeile + 1 Loop End With End Sub