11
votes

Comment aller de la ligne, colonne à exceller la notation A1?

Compte tenu d'une rangée et d'une colonne (aussi longtemps), comment pouvez-vous déterminer la notation de feuille de calcul à l'aide de VBA dans Excel (2007):

par exemple: xxx

donc si Vous avez eu une fonction: xxx

qui a fourni cette fonctionnalité, vous pouvez faire quelque chose comme: xxx

un petit fond, Au cas où il s'agit de la mauvaise approche à prendre: le but est que j'ai une feuille de maîtrise qui décrit d'autres feuilles de calcul dans un tableau: xxx

Cette feuille maître contrôle les transformations Sur la feuille, mais la valeur de la plage est évidemment dans la notation Excel pour une utilisation ultérieure appropriée pour référencer la gamme. Cependant, une routine pour gérer ce tableau, signaler des exceptions et assurer la cohérence obtient vraiment des choses à partir d'autres feuilles de la ligne et de la colonne, alors par exemple, il obtient une ligne et une colonne où elle sait que quelque chose commence et se terminant.

< Strong> Voici la fonction que j'ai finie avec: xxx


0 commentaires

5 Réponses :


4
votes

Peut-être Ce est ce que vous recherchez?


1 commentaires

+1. Eh bien, publiez une partie de ce code ici ou au moins expliquer comment cela se fait aiderait. (Link pourriture un jour pourrait laisser cette réponse moins utile) :)



3
votes

3 commentaires

Wow, cool trucs. Je ne suis pas sûr que d'entre eux sont meilleurs que ce que j'ai proposé en fonction de l'application.Converformula trouvés via la première réponse, cependant.


D'accord. Je viens d'inclus pour complétude.


C'est un excellent blog que vous avez là;)



1
votes

http://support.microsoft.com/kb/833402 est une solution Microsoft pour Le problème de la conversion de nombres en lettres (la partie délicate de la conversion de 1,1 à A1). Cela a en fait le beuaty de travailler dans d'autres applications que Excel, car il s'appuie sur la VBA de base.

Vous ajoutez: p>

' Converts row and column index to Excel notation, ie (3, 2) to B3.
Private Function generateExcelNotation(row As Integer, column As Integer) As String
    ' error handling of your choice, I go for returning an empty string
    If (row < 1 Or column < 1) Then
        generateExcelNotation = ""
        Exit Function
    End If
    generateExcelNotation = ConvertToLetter(column) & row
End Function


0 commentaires

0
votes

L'expression 'rngtemp.address (FALSE, FALSE ,.Cells (1, 1))' affiche l'adresse de la plage RNGTemp dans la notation A1 qui ne contient pas de $ S pour signifier une adresse absolue. Pour obtenir une adresse absolue, remplacez 'False, False' avec ','.


0 commentaires

0
votes

Voici deux solutions. Un avec une généralité élégante, une autre vision simple et directe de la mise en œuvre actuelle d'Excel. Le premier est limité uniquement par la précision du type de données entier ou long. La seconde échouera si le nombre maximum de colonnes devait augmenter au-delà de 18278, le point lorsque les références de colonne vont de trois lettres à quatre lettres. Les deux sont pure VBA sans confiance sur une caractéristique particulière à une application MS Office.

Les références de colonne sont considérées comme des ensembles consécutifs de numéros de base 26 d'un nombre donné de chiffres avec l'alphabet servant de chiffres A = 0, B = 1, .. etc. Il y a d'abord 26 colonnes à une seule lettre. Puis 26 ^ 2 = 676 colonnes à deux lettres, Puis 26 ^ 3 = 17576 colonnes triple lettre pour un total de 18278 dont seuls 16384 sont utilisées par Excel.

A1, B1, ..., Z1 (1-26, 26 colonnes)

aa1, ...., zz1, (27 à 702, 26 ^ 2 = 676 colonnes)

AAA1, ..., XFD1 (703 à 16384, 15682 colonnes de 26 ^ 3 = 17576 possible avec trois lettres)

C'est la première solution. Actuellement, le numéro de colonne maximum est de 16384 afin que le code fonctionnera avec entier (limite supérieure 32767) au lieu de long. Si vous aimez que vous puissiez faire vérifier que le paramètre de colonne C n'est pas hors de portée. xxx


Ce second est simple ("rapide et sale") et fonctionnera avec Excel actuel. Il nécessitera une modification sérieuse si le nombre maximal de colonnes dépasse 18278 lorsque la référence de colonne passe de 3 à 4 lettres. ' xxx


0 commentaires