VB中使用Excel工作表函数

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在Visual Basic 中使用Microsoft Excel工作表函数

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

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

从Visual Basic中调用工作表函数

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

以下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.Log和Log将返回不同的值。

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

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

单元格区域的Formula属性。

Sub InsertFormula()

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

End Sub

示例

本示例使用工作表函数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")

备注:空格+_表示续行符

相关文档
最新文档