在VBA中引用excel的函数

转载 2006年06月15日 14:03:00
在 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.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")

VBA中调用excel的函数

点击打开链接
  • qq_25245887
  • qq_25245887
  • 2016年11月22日 22:39
  • 4380

在VBA中引用excel的函数

在 Visual Basic 语句中可以使用大多数 Microsoft Excel 工作表函数。若要查看可以使用的工作表函数列表,请参阅 Visual Basic 可使用的工作表函数列表。 注意 ...
  • Jofee
  • Jofee
  • 2006年06月15日 14:03
  • 4922

vba内部函数

在VBA程序语言中有许多内置函数,可以帮助程序代码设计和减少代码的编写工作。 一.测试函数 IsNumeric(x)        ‘是否为数字,  返回Boolean结果,True or Fa...
  • logan676
  • logan676
  • 2014年03月04日 11:02
  • 868

如何从Excel 中调用C/C++写的动态链接库函数

看到个挺好的资源,推荐下; 虽然没有解答我想找的问题,但是这么详细真的很不错。 如果图片无法显示,不如到原始网站看。 https://sites.google.com/site/jrlhost/li...
  • stereohomology
  • stereohomology
  • 2015年07月03日 19:33
  • 2494

excel的VBA中两种调用工作表函数的方法

excel 的VBA中有两种调用工作表函数的方法:Sub aa()   ActiveSheet.Range("b2") = Application.WorksheetFunction.Max(Rang...
  • henrryzhang
  • henrryzhang
  • 2009年03月24日 14:59
  • 1727

vba调用javascript函数封装

//过滤 function filter(sheet, rangeStr, col, value) { sheet.range(rangeStr).AutoFilter(col, value); }...
  • henren555
  • henren555
  • 2014年09月01日 09:23
  • 1100

【VBA研究】VBA中使用vlookup函数

作者:iamlaosong   VLOOKUP函数不是VBA函数,应写成Application.WorksheetFunction.VLookup()或者Application.VLookup() A...
  • iamlaosong
  • iamlaosong
  • 2013年05月15日 11:02
  • 33232

VBA - Excel编程概念之:【单元格和区域】一、如何引用单元格和区域

使用 Visual Basic 的普通任务是指定单元格或单元格区域,然后对该单元格或单元格区域进行一些操作,如输入公式或更改格式。通常用一条语句就能完成操作,该语句可标识单元格,还可更改某个属性或应用...
  • LeosHope
  • LeosHope
  • 2007年06月16日 12:06
  • 4484

在Excel VBA中如何能够使用ADODB对象?

首先要在Excel中做一下设置: 在Tools菜单中选择References菜单项,勾选其中的“Microsoft ActiveX Data Objects 2.8 Library”,即可。 ...
  • zw_2011
  • zw_2011
  • 2013年03月11日 11:43
  • 2267

VBA中用自定义函数在工作表中添加动态图表

经常在家中看到有兄弟伙们问到:如何在工作表中添加动态的图表.现做了个自定义函数,可在工作表中添加动态图表,支持选择连续单元格. 不足之处,还望多提宝贵意见. 函数: Function MyCha...
  • kongwei521
  • kongwei521
  • 2012年01月04日 22:10
  • 2171
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在VBA中引用excel的函数
举报原因:
原因补充:

(最多只允许输入30个字)