Questo metodo funziona bene in VBA utilizzando una doppia sostituzione, dove R è una singola cella di Excel Gamma:
ColumnLetter = Replace(Replace(R.AddressLocal(ReferenceStyle:=1), "$", vbNullString), R.Row, vbNullString)
E ' basato sull'idea equivalente per l'uso su un foglio di lavoro. In una cella di Formula utilizzare questo, è ancora più breve:
=SUBSTITUTE(ADDRESS(1,COLUMN(M1),4),1,"")
Questa operazione riporta la lettera M e lavora fino alla XFD Colonna. Il riferimento di cella M1 può essere qualsiasi intervallo ovunque. La colonna in alto a sinistra viene restituita per intervalli o più di una cella.
Ottiene l'INDIRIZZO della prima cella nella colonna e quindi rimuove il trailing 1 sostituendo un NullString per esso. (Il 4 nell'INDIRIZZO si assicura che l'indirizzo sia restituito come un indirizzo relativo, cioè uno senza e $ segni in esso.)
Grazie a barry houdini che mi ha spinto alla ricerca di una buona risposta a questo.
fonte
2016-06-29 15:25:23
Questo codice è sbagliato. Ecco una versione corretta: \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 token di ritorno [1]; –
@PhredMenyhert il tuo codice restituirà solo 'B' – sam