Ich versuche, jede Spalte in einer Excel-Tabelle durch ihre Kopfzeile zu benennen. Zum Beispiel, wenn eine Spalte die Überschrift "Katze" hat, möchte ich, dass die Spalte "Katze" genannt wird. Auf diese Weise kann ich in einer Formel auf cat verweisen, anstatt die Spalte mit A: A anzugeben.Name jeder Spalte in einer Tabelle excel/vba
Ich kann das ganz gut mit einer einzigen Spalte, aber wenn ich versuche, es mit vielen meiner Prozedur schlägt fehl. Hier ist mein Code.
Sub defineName()
Dim numColumns As Long
Range("A1").Select
numColumns = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Columns("A:A").Select
For cat = 0 To numColumns
Selection.Offset(0, I).Select
ActiveWorkbook.Names.Add Name:=cat1, RefersToR1C1:="activesheet.cat1"
Next cat
End Sub
Im ziemlich sicher, dass mein Problem ist, dieser Teil
Name:=cat1, RefersToR1C1:="activesheet.cat1"
und es iteriert nicht, wie ich denke, es ist.
Ich wünschte fast, ich könnte
Name:=[cat]1, RefersToR1C1:="activesheet.[cat]1"
aber das funktioniert auch nicht. Hat jemand eine Idee?
Sie können dies direkt aus dem Formelmenü mit Create from Selection tun und natürlich in VBA konvertiert werden. – SJR
Ich glaube nicht, dass dies genau das ist, was Sie tun möchten. Sie werden wahrscheinlich einen enormen Leistungseinbruch bemerken. Wenn Sie 'A: A' in Formeln verwenden, findet Excel die letzte Zeile (wenn es sich nicht um eine Matrixformel handelt) und berücksichtigt nur den Anfang bis zum Ende Ihres Datenbereichs nicht alle 1048576-Zellen. Wenn Sie den Bereich benennen, wird er mit jeder Zelle in diesem Bereich berechnet. Jetzt können Sie Ihren Datensatz in eine Tabelle konvertieren. Sie können dann wie 'Table1 [[# All], [cat]] darauf verweisen.' Dies wird auch automatisch tun, was Sie fragen, also keine Notwendigkeit für VBA – Tom
Ich würde vorschlagen, die natürliche Sprache Formel, die in XL97 erscheinen ... Es verschwand aber wieder in XL07. Es ist ein ärmerer Bruder der Tabellen, die @ Tom vorschlägt. https://bettersolutions.com/excel/named-ranges/natural-language-formulas.htm –