Excel VBA教程:在 Visual Basic 中使用 Microsoft Excel 工作表函数

在 Visual Basic 语句中可以使用大多数 Microsoft Excel 工作表函数。若要查看可以使用的工作表函数列表,请参阅Visual Basic 可使用的工作表函数列表

注意   一些工作表函数在 Visual Basic 中是不实用的。例如:Concatenate函数就不实用,因为在 Visual Basic 中可使用 & 运算符来连接多个文本值。

从 Visual Basic 中调用工作表函数

在 Visual Basic 中,通过 WorksheetFunction对象可使用 Microsoft Excel 工作表函数。

以下 Sub 过程使用 Min 工作表函数来决定在某个单元格区域中的最小值。首先,将变量myRange 声明为 Range对象,然后将其设置为 Sheet1 上的 A1:C10 单元格区域。指定另一个变量answer 为对myRange 应用 Min函数的结果。最后,answer 的值就被显示在消息框中。


Sub UseFunction()
    Dim myRange As Range
    Set myRange = Worksheets("Sheet1").Range("A1:C10")
    answer = Application.WorksheetFunction.Min(myRange)
    MsgBox answer
End Sub

如果您使用的工作表函数需要一个单元格区域引用作为参数,则必须指定一个 Range对象。例如:您可以用 Match 工作表函数搜索单元格区域。可以在工作表单元格中输入公式,如“=MATCH(9,A1:A10,0)”。但是,您应在 Visual Basic 过程中指定一个 Range对象来获取相同的结果。


Sub FindFirst()
    myVar = Application.WorksheetFunction _
        .Match(9, Worksheets(1).Range("A1:A10"), 0)
    MsgBox myVar
End Sub

注意   Visual Basic函数不使用 WorksheetFunction 识别符。函数可能和 Microsoft Excel 的函数同名但作用各异。例如:Application.WorksheetFunction.LogLog 将返回不同的值。

在单元格中插入工作表函数

若要在单元格中插入工作表函数,请指定函数作为相应的 Range对象的 Formula属性值。以下示例中,将 RAND 工作表函数(可生成随机数)赋给了活动工作簿中 Sheet1 上 A1:B3 单元格区域的 Formula属性。


Sub InsertFormula()
    Worksheets("Sheet1").Range("A1:B3").Formula = "=RAND()"
End Sub

Excel VBA教程:在 Visual Basic 中使用 Microsoft Excel 工作表函数·示例

本示例使用工作表函数 Pmt 来计算住宅抵押贷款的支付额。请注意,本示例使用的是 InputBox方法,而不是 InputBox函数,因此该方法可以执行类型检查。Static 语句使 Visual Basic 保留三个变量的值;当下次运行该程序时,这些变量将显示为默认值。


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")

上页:Excel VBA教程:QueryTable对象事件的用法 下页:Excel VBA教程:工作簿对象事件

Excel VBA教程:在 Visual Basic 中使用 Microsoft Excel 工作表函数

Excel VBA教程:工作簿对象事件 Excel VBA教程:处理三维区域
Excel VBA教程:处理图形(绘图对象) Excel VBA教程:处理活动单元格
Excel VBA教程:Worksheet对象事件 Excel VBA教程:页眉和页脚的格式代码
Excel VBA教程:ActiveX 控件 Excel VBA教程:“帮助”主题不可用
Excel VBA教程:“帮助”主题不可用 Excel VBA教程:“帮助”主题不可用
Excel VBA教程:“帮助”主题不可用 Excel VBA教程:单元格错误值
Excel VBA教程:内置对话框参数列表 Excel VBA教程:Hidden属性
Excel VBA教程:与语言相关的属性、方法和函数 Excel VBA教程:可用于 Visual Basic 的工作表函数列表
Excel VBA教程:新的事件 Excel VBA教程:新的方法(按字母顺序列出)
Excel VBA教程:新的方法(按对象列出) Excel VBA教程:新的对象
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号