Requiere 3 argumentos:
1. Formula: celda con la fórmula
2. Tipo (opcional)
0 para mostrar la fórmula tal cual fue ingresada en la celda (es el valor por defecto).
1 para mostrar la fórmula en inglés.
2 para mostrarla en referencia tipo R1C1
3. Celda[Argumento opcional], indica si se mostrará la dirección de la celda en la que se encuentra la fórmula que se desea mostrar. Falso (0) es el valor predeterminado, así que si se omite no mostrará la dirección de la celda. Verdadero (1) mostrará la dirección de la celda antecediendo a la fórmula.
Así, si en A11 se tiene la fórmula =SUMA(A1:A10), MostrarFormula dará los siguientes resultados:
=MostrarFormula(A11) mostrará =SUMA(A1:A10)
=MostrarFormula(A11,,1) mostrará A11: =SUMA(A1:A10)
=MostrarFormula(A11,2) mostrará =SUM(R[-10]C:R[-1]C)
=MostrarFormula(A11,1,VERDADERO) mostrará A11: =SUM(A1:A10)
Si la celda ingresada en MostrarFormula contiene un fórmula matricial, el resultado arrojado se mostrará entre { } indicando que es una fórmula matricial.
Si la celda ingresada en MostrarFormula no contiene una fórmula, la función arrojará error de #N/A.
A continuación el código de la función:
- Código: Seleccionar todo
Function MostrarFormula(ByVal Formula As Excel.Range, _
Optional ByVal Tipo As Byte = 0, _
Optional ByVal Celda As Boolean = False) As Variant
Dim Ref As String
If Formula.HasFormula Then
If Celda = True Then Ref = Formula.Address(0, 0) & ": "
Select Case Tipo
Case 0
If Formula.HasArray Then
MostrarFormula = Ref & "{" & Formula.FormulaLocal & "}"
Else
MostrarFormula = Ref & Formula.FormulaLocal
End If
Case 1
If Formula.HasArray Then
MostrarFormula = Ref & "{" & Formula.Formula & "}"
Else
MostrarFormula = Ref & Formula.Formula
End If
Case 2
If Formula.HasArray Then
MostrarFormula = Ref & "{" & Formula.FormulaR1C1 & "}"
Else
MostrarFormula = Ref & Formula.FormulaR1C1
End If
End Select
Else
MostrarFormula = VBA.CVErr(xlErrNA)
End If
End Function
Salu2.xls




