La conversión entre números de columna y referencias de columna utilizando VBA en Microsoft Excel
En este artículo, crearemos dos funciones personalizadas, una función para convertir números de columna en referencias de columna y otra función para convertir referencias de columna en números de columna.
Los datos sin procesar para este ejemplo constan de dos datos de muestra, un dato de muestra contiene números de columna aleatorios y los datos de la segunda muestra contienen referencias de columna aleatorias.
Hemos creado dos funciones personalizadas “ColNoToColRef” y “ColRefToColNo”. La función “ColNoToColRef” se utiliza para convertir números de columna en referencias de columna. Toma valores enteros como entrada.
De manera similar, la función «ColRefToColNo» se utiliza para convertir referencias de columna en números de columna.
Explicación del código
Celdas (1, ColNo). Dirección (Verdadero, Falso, xlA1)
El código anterior se usa para obtener la dirección de la celda especificada.
Izquierda (ColNoToColRef, InStr (1, ColNoToColRef, «$») – 1)
El código anterior se utiliza para extraer el carácter del lado izquierdo del símbolo «$».
Siga a continuación el código
Option Explicit Function ColNoToColRef(ColNo As Long) As String If ColNo < 1 Or ColNo > Columns.Count Then ColNoToColRef = "Invalid input value" Else 'Finding the address of cell in the first row based on the specified column number ColNoToColRef = Cells(1, ColNo).Address(True, False, xlA1) 'Extracting the column name from the address ColNoToColRef = Left(ColNoToColRef, InStr(1, ColNoToColRef, "$") - 1) End If End Function Function ColRefToColNo(ColRef As String) Dim Rng As Range On Error GoTo LastPart 'Assigning cell in the first row of the specified column reference as range Set Rng = Range(ColRef & "1") 'Getting the column number of the specified range ColRefToColNo = Rng.Column Exit Function LastPart: ColRefToColNo = "Invalid input value" End Function
Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]