Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Use la mayoría de las funciones de hojas de cálculo de Microsoft Excel con las instrucciones de Visual Basic. Para ver una lista de las funciones de hojas de cálculo que puede usar, consulte Lista de funciones de hojas de cálculo disponibles para Visual Basic.
Nota:
Algunas funciones de hoja de cálculo no son útiles en Visual Basic. Por ejemplo, la función Concatenate no es necesaria porque, en Visual Basic, puede usar el operador & para unir varios valores de texto.
Llamada a una función de hoja de cálculo desde Visual Basic
En Visual Basic, las funciones de hojas de cálculo de Excel están disponibles a través del objeto WorksheetFunction.
El siguiente procedimiento Sub usa la función de hoja de cálculo Min para determinar el menor valor de un rango de celdas. Primero, la variable myRange
se declara como un objeto Range y, a continuación, se establece como el rango A1:C10 en Hoja1. A otra variable, answer
, se le asigna el resultado de aplicar la función Min a myRange
. Por último, el valor de answer
se muestra en un cuadro de mensaje.
Sub UseFunction()
Dim myRange As Range
Set myRange = Worksheets("Sheet1").Range("A1:C10")
answer = Application.WorksheetFunction.Min(myRange)
MsgBox answer
End Sub
Si usa una función de hoja de cálculo que requiere una referencia de rango como argumento, debe especificar un objeto Range. Por ejemplo, puede usar la función de hoja de cálculo Match para buscar un rango de celdas. En una celda de hoja de cálculo, escribiría una fórmula de esta manera =COINCIDIR(9,A1:A10,0). Sin embargo, en un procedimiento de Visual Basic, especificaría un objeto Range para obtener el mismo resultado.
Sub FindFirst()
myVar = Application.WorksheetFunction _
.Match(9, Worksheets(1).Range("A1:A10"), 0)
MsgBox myVar
End Sub
Nota:
Las funciones de Visual Basic no usan el calificador WorksheetFunction. Una función puede tener el mismo nombre que una función de Microsoft Excel y aún así funcionar de forma diferente. Por ejemplo, Application.WorksheetFunction.Log
y Log
devolverán valores diferentes.
Insertar una función de hoja de cálculo en una celda
Para insertar una función de hoja de cálculo en una celda, especifique la función como valor de la propiedad Formula del objeto Range correspondiente. En el siguiente ejemplo, la función de hoja de cálculo RAND (que genera un número aleatorio) se asigna a la propiedad Formula del rango A1:B3 en Sheet1 en la hoja de cálculo activa.
Sub InsertFormula()
Worksheets("Sheet1").Range("A1:B3").Formula = "=RAND()"
End Sub
Ejemplo
Este ejemplo usa la función de hoja de cálculo Pmt para calcular un pago de préstamo hipotecario. Observe que este ejemplo usa el método InputBox en lugar de la función InputBox para que el método realice la comprobación de tipo. Las instrucciones Static hacen que Visual Basic conserve los valores de las tres variables; aparecen como valores predeterminados la próxima vez que ejecuta el programa.
Static loanAmt
Static loanInt
Static loanTerm
loanAmt = Application.InputBox _
(Prompt:="Loan amount (100,000 for example)", _
Default:=loanAmt, Type:=1)
loanInt = Application.InputBox _
(Prompt:="Annual interest rate (8.75 for example)", _
Default:=loanInt, Type:=1)
loanTerm = Application.InputBox _
(Prompt:="Term in years (30 for example)", _
Default:=loanTerm, Type:=1)
payment = Application.WorksheetFunction _
.Pmt(loanInt / 1200, loanTerm * 12, loanAmt)
MsgBox "Monthly payment is " & Format(payment, "Currency")
Vea también
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.