Dieses gut in VBA arbeitet ein Doppel ersetzen durch Verwendung, wobei R a Single Cell Excel-Bereich ist:
ColumnLetter = Replace(Replace(R.AddressLocal(ReferenceStyle:=1), "$", vbNullString), R.Row, vbNullString)
Es ist basierend auf der äquivalenten Idee für die Verwendung in einem Arbeitsblatt. In einer Zelle Formel diese, es ist sogar noch kürzer:
=SUBSTITUTE(ADDRESS(1,COLUMN(M1),4),1,"")
Dies gibt den Buchstaben M und arbeitet bis zur Spalte XFD. Die Zellenreferenz M1 kann irgendwo ein beliebiger Bereich sein. Die obere linke Spalte wird für Bereiche oder mehr als eine Zelle zurückgegeben.
Er erhält die ADRESSE der ersten Zelle in der Spalte und entfernt dann die abschließende 1, indem er eine NullString dafür ersetzt. (Die 4 in der ADRESSE stellt sicher, dass die Adresse als eine relative Adresse zurückgegeben wird, d. H. Eine ohne und $ Zeichen darin.)
Danke an barry houdini, die mich auf der Suche nach einer guten Antwort auf diese absetzte.
Dieser Code ist falsch. Hier ist eine korrigierte Version: \t \t var location = sheet.Range ["A1"]. Offset [0, columnNumber - 1] .Address [true, true, XlReferenceStyle.xlA1, Missing, Missing]; \t \t \t var tokens = location.Split ('$'); \t \t \t Return-Token [1]; –
@PhredMenyhert Ihr Code wird nur 'B' zurückgeben – sam