Excel numéro de colonne du nom de colonne

Comment obtenir le numéro de colonne du nom de colonne dans Excel en utilisant la macro Excel?

55
demandé sur ashleedawg 2012-04-11 17:04:15

5 réponses

je pense que tu veux ça?

nom de la colonne au numéro

Sub Sample()
    ColName = "C"
    Debug.Print Range(ColName & 1).Column
End Sub

Modifier : Aussi, y compris l'inverse de ce que vous voulez

numéro de la colonne au nom de la colonne

Sub Sample()
    ColNo = 3
    Debug.Print Split(Cells(, ColNo).Address, "$")(1)
End Sub

SUIVI

comme si j'avais zone de salaire au Très Haut permet de dire à la cellule C (1,1) maintenant si je modifie le dossier et déplacer la colonne de salaire à un autre endroit disent F (1,1) alors je vais devoir modifier le code ainsi je veux que le code pour vérifier le salaire et trouver le numéro de colonne et puis faire le reste des opérations selon ce numéro de colonne.

dans ce cas, je recommande d'utiliser .FIND voir cet exemple ci-dessous

Option Explicit

Sub Sample()
    Dim strSearch As String
    Dim aCell As Range

    strSearch = "Salary"

    Set aCell = Sheet1.Rows(1).Find(What:=strSearch, LookIn:=xlValues, _
    LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False)

    If Not aCell Is Nothing Then
        MsgBox "Value Found in Cell " & aCell.Address & _
        " and the Cell Column Number is " & aCell.Column
    End If
End Sub

SNAPSHOT

enter image description here

135
répondu Siddharth Rout 2012-04-12 10:42:38

pendant que vous étiez à la recherche d'une solution VBA, ce fut mon meilleur résultat sur google lors de la recherche d'une solution de formule, donc je vais ajouter ceci pour quiconque est venu ici pour cela comme je l'ai fait:

Excel formule pour retourner le numéro d'une colonne lettre (du commentaire DE @A. Klomp ci-dessus), où la cellule A1 contient votre colonne lettre(s):

=colonne (indirecte (A1& "1"))

comme le la fonction indirecte est volatile, elle recalcule chaque fois qu'une cellule est changée, donc si vous avez beaucoup de ceux-ci, il pourrait ralentir votre cahier d'exercices. Envisagez une autre solution, comme la fonction "code", qui vous donne le numéro D'un caractère ASCII, en commençant par " A " à 65. Notez que pour ce faire, vous devez vérifier combien de chiffres sont dans le nom de la colonne, et modifier le résultat en fonction de "A", "BB", ou "CCC".

Excel formule pour retourner la colonne lettre d'un numéro (de cette question précédente comment convertir un numéro de colonne (par ex. 127) dans une colonne excel (p. ex. AA) , répondu par @Ian), où A1 contient votre numéro de colonne:

= remplaçant(adresse 1, A1),4),"1","")

notez que ces deux méthodes fonctionnent indépendamment du nombre de lettres dans le nom de la colonne.

J'espère que ça aidera quelqu'un d'autre.

5
répondu Grade 'Eh' Bacon 2017-05-23 12:10:06

vous pouvez sauter tout cela et juste mettre vos données dans une table. Puis reportez-vous à la table et d'en-tête et il sera complètement dynamique. Je sais que ça date d'il y a 3 ans, mais quelqu'un pourrait trouver ça utile.

exemple de code:

Activesheet.Range("TableName[ColumnName]").Copy

vous pouvez également utiliser:

activesheet.listobjects("TableName[ColumnName]").Copy

Vous pouvez même utiliser ce système de référence dans les formules de calcul. Son très dynamique.

Espérons que cette aide!

0
répondu Troy 2016-03-09 09:28:53

écrire et exécuter le code suivant dans la fenêtre immédiate

?cells(,"type the column name here").column

par exemple ?cells(,"BYL").column retournera 2014. Le code est insensible à la casse, donc vous pouvez écrire ?cells(,"byl").column et la sortie sera toujours la même.

0
répondu Anastasiya-Romanova 秀 2016-08-21 09:16:57

à mon avis, la façon la plus simple d'obtenir le numéro de colonne est:

Sub Sample() ColName = ActiveCell.Column MsgBox ColName End Sub

-1
répondu FatBatman 2017-05-11 10:07:59