在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,000for example)",_
Default:=loanAmt,Type:=1)
loanInt=Application.InputBox_
(Prompt:="Annual interest rate(8.75for example)",_
Default:=loanInt,Type:=1)
loanTerm=Application.InputBox_
(Prompt:="Term in years(30for example)",_
Default:=loanTerm,Type:=1)
payment=Application.WorksheetFunction_
.Pmt(loanInt/1200,loanTerm*12,loanAmt)
MsgBox"Monthly payment is"&Format(payment,"Currency")
visual basic pdf备注:空格+_表示续行符
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论