El WorksheetFunction contiene funciones integradas que se pueden usar de la misma manera que las funciones de una hoja hoja de Excel.
Para poder usar cualquier función WorksheetFunction, se debe nombrar primero al objeto Application.
Ejemplo: Application.WorksheetFunction.Roman
La función WorksheetFunction.Roman(arg1, [arg2]) es equivalente a “=NUMERO.ROMANO(número, [formal])” que se usa en las celdas de Excel para convertir un número arábigo (1,2,3,..) en un número romano (I,V,X, ...). La diferencia radica en que la primera se puede incluir en el lenguaje VBA para programar una macro. La notación de esta función en VBA es:
Las restricciones de la función WorksheetFunction.Roman son las mismas que para Numero.Romano, por lo tanto los números que convierte solo pueden ser mayores a cero y menores a 4000 (0< x < 4000).
Ejemplos de Función WorksheetFunction.Roman
Cuando hablamos de ciclos o semestres en la universidad se usan números romanos en vez de los arábigos, por tanto si tenemos el ciclo en la celda D4 podemos usar lo siguiente:
Sub Ejemplo()
Arabigo = Worksheets("Hoja1").Range("D4")
Romano = Application.WorksheetFunction.Roman(Arabigo)
Range("E4") = Romano
End Sub
Descargar ejemplo: Función WorksheetFunction.Roman
Si no deseamos depender de una celda si no de un número disponible en una variable podríamos usar lo siguiente:
Sub ConvertirANumeroRomano()
Dim Numero As Integer
Dim Romano As String
' Número a convertir
Numero = 2023
' Usando la función WorksheetFunction.Roman para convertirlo
Romano = WorksheetFunction.Roman(Numero)
' Muestra el resultado en la celda activa
ActiveSheet.Cells(1, 1).Value = Romano
End Sub
Por: María Alejandra Ceballos Valencia
04/07/2015 a las 12:28 am
En el ejemplo Arabigo es una variable no declarada, entonces deduzco que no es necesario porque la macro ¿asume un valor numérico?. ¿En qué momento declaro si una variable es numérica o string?