Namen können keine Blanks enthalten ...
17.02.2010 13:14:43
Renee
Sue,
Darum müsste man dieses durch ein Zeichen substituieren, also z.B. so:
Sub NamenBereicheSpalte()
Const cStrSheet = "Tabelle B" ' In diesem Arbeitsblatt
Const cLngCol As Long = 3 ' In dieser Spalte
Const tNamePrefix = "B_" ' Name-Prefix to prevent Celladdress-Collisions
Dim lngRow As Long, lngSRow As Long
Dim varSaveVal
With Worksheets(cStrSheet)
varSaveVal = Replace(.Cells(15, cLngCol).Value, " ", "_")
lngSRow = 15
For lngRow = 15 To .Cells(.Rows.Count, cLngCol).End(xlUp).Row + 1
If varSaveVal Replace(.Cells(lngRow, cLngCol).Value, " ", "_") Then
On Error Resume Next
ThisWorkbook.Names.Add _
Name:=tNamePrefix & varSaveVal, _
RefersTo:="='" & cStrSheet & "'!" & _
.Range(.Cells(lngSRow, cLngCol), .Cells(lngRow - 1, cLngCol)).Address
On Error GoTo 0
varSaveVal = Replace(.Cells(lngRow, cLngCol).Value, " ", "_")
lngSRow = lngRow
End If
Next lngRow
End With
End Sub
Wenn das mit dem Prefix nicht erwünscht ist, setze einfach die Zeile der Definition so:
Const tNamePrefix = ""
Es gibt noch andere Fallen, die aufgehen können. Z.B. dürfen die Werte keine Kommas (,), nur numerische Werte, oder gewisse Spezialzeichen enthalten. Das hat alles damit zu tun, dass die Definition eines Namens gewissen Vorschriften unterliegt.
GreetZ Renée