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.

ArrowMain

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.

ArrowOutput

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]