在 Excel 中编写自定义函数——模拟 SUM 函数
来源:互联网 发布:淘宝信誉度查询网站 编辑:程序博客网 时间:2024/05/18 00:41
编写自定义函数是为了处理数据,如何向自定义的函数(UDF)传递待处理的数据就成为开发者要考虑的问题。
就一般意义上的函数来说,参数列表通常是参数个数固定,类型明确的,比如下面的声明:
Public Function MyFunc1(name As String, age As Integer) As String
但是 Excel 里的函数有它的特殊性。我们在工作表里编写公式的时候,往往并不提供具体的数字或字符串,比如
但有的时候,对于函数的某个参数,我们希望既可以传递单一的单元格,也可以传递一块单元格范围,增加函数的灵活性,就像
更进一步,如果我们希望参数列表是变长的呢?提供一个参数可以,提供两个三个也可以,参数的个数是任意的。
一种解决方法是用
Public Function MyFunc2(name As String, Optional age As Integer =0) As String
但是用
把参数声明为
更贴近我们需求的解决方案是用
下面的例子是模拟
Function MySum(ParamArray numbers()) As DoubleDim i As IntegerDim j As IntegerDim k As IntegerDim argD As IntegerDim rtn As Doublertn = 0argD = UBound(numbers)For i = 0 To argD If IsArray(numbers(i)) Then If IsObject(numbers(i)) Then For j = 1 To numbers(i).Rows.Count For k = 1 To numbers(i).Columns.Count If IsNumeric(numbers(i)(j, k)) Then rtn = rtn + numbers(i)(j, k) End If Next k Next j Else For j = LBound(numbers(i)) To UBound(numbers(i)) rtn = rtn + numbers(i)(j) Next j End If Else If IsNumeric(numbers(i)) Then rtn = rtn + numbers(i) End If End IfNext iMySum = rtnEnd Function
做几点说明,用
我们可以在代码里加入断点,然后从“Locals Window”查看
了解了用
- 在 Excel 中编写自定义函数——模拟 SUM 函数
- 在 Excel 中编写自定义函数——基础篇
- 在 Excel 中编写自定义函数——返回多个值
- 在Excel中自定义四舍六入函数Round46()
- 在excel 中自定义函数进行数据处理
- 对字符串的“sum”——在Oracle中自定义聚集函数的例子
- 对字符串的“sum”——在Oracle中自定义聚集函数的例子
- 对字符串的“sum”——在Oracle中自定义聚集函数的例子
- 对字符串的“sum”——在Oracle中自定义聚集函数的例子
- 关于EXCEL中SUM函数的问题
- 模拟Sum函数
- 自定义Oracle聚集函数:模拟SUM,MAX,AVG
- hive中如何自定义编写UDF函数
- 编写高质量代码——避免在构造析构函数中调用虚函数
- Excel 中自定义函数的限制
- excel中个人所得税之自定义函数
- 在smarty中自定义函数
- 模拟Sum函数(版本二)
- 配置Tomcat数据池
- 华为面试题
- C#操纵XML文档(主要是应用程序的配置文件)
- McGraw.Hill.MCITP.SQL.Server.2005.Database.Developer.All.in.One.Exam.Guide.Mar.2008.eBook-BBL
- C#操纵XML文档(主要是应用程序的配置文件)
- 在 Excel 中编写自定义函数——模拟 SUM 函数
- C# 解释配置文件内容
- JavaCard开发
- 老婆 想说爱你很难
- C#操纵XML文档(主要是应用程序的配置文件)
- 转贴: 辞职日记----记录31岁的程序员跳槽心态
- java 反射 画Sin、Cos函数曲线
- 一些经典的C#源代码
- SQL Server2000 企业管理器 "管理单元初始化失败"