Comment obtenir à partir de la Ligne, la Colonne d'Excel A1 notation?

Donné une Ligne et une Colonne (Tant), comment pouvez-vous déterminer la feuille de calcul de la notation à l'aide de VBA dans Excel (2007):

par exemple:

(R, C) = (1, 1) -> "A1"
(R, C) = (2, 1) -> "A2"
(R, C) = (2, 2) -> "B2"

Donc si vous avait une fonction:

Function CellRef(R As Long, C As Long) As String

qui a fourni à cette fonctionnalité, vous pourriez faire quelque chose comme:

Worksheet.Range(CellRef(R1, C1) + ":" + CellRef(R2, C2)).Copy

Un peu de fond, dans le cas où c'est la mauvaise approche à prendre: Le but de ceci est que j'ai une fiche qui décrit d'autres feuilles de calcul dans un tableau:

WorksheetName, Range etc....

Cette fiche contrôles des transformations sur la feuille, mais la Plage de valeur est évidemment dans Excel notation pratique pour un usage ultérieur dans le référencement de la gamme. Cependant une routine pour gérer ce tableau, rapport d'exceptions et d'assurer la cohérence obtient vraiment des choses à partir d'autres feuilles dans de ligne et de colonne, de sorte que, par exemple, il obtient une ligne et la colonne où il sait quelque chose, est de début et de fin.

Voici la fonction que j'ai terminé avec:

Private Function CellRef(R As Long, C As Long) As String
    CellRef = vbNullString
    On Error GoTo HandleError:
    CellRef = Replace(Mid(Application.ConvertFormula("=R" & R & "C" & C, XlReferenceStyle.xlR1C1, XlReferenceStyle.xlA1), 2), "$", "")
    Exit Function
HandleError:
End Function

OriginalL'auteur Cade Roux | 2009-07-11