excel自定义函数编写方法

excel自定义函数编写方法
excel自定义函数编写方法

Excel自定义函数基础教程

1.总述、编写环境与设置

自定义函数功能是Excel中一个强大的扩展功能,它可以实现不同用户的特定计算要求。以使得Excel计算自主化、专业化,可以大大简化人工劳动(查表、专业公式计算、统计等)。所以编写与使用自定义函数应是每个工程计算人员必不可少的技能。本教程为零基础教程,特为呼和浩特职业技术学院编写,如需引用或咨询请联系526949738@https://www.360docs.net/doc/4f5787657.html,。

本教程以Excel2003为平台讲解,使用其他版本Excel的同学请参照学习。自定义函数需要应用宏编写,请进行如下设置。

工具—>宏—>安全性

写的宏了。

器,在弹出的窗口点击插入—>模块,即进入了编写环境。

选中相应的模块点击文件—>导出文件,就可以存储.bas的源文件。这样就可以方便存储整理,以便日后引用。

2.宏的概念与Visual Basic基础

有VB编程基础的同学可跳过此章。

宏实际上就是一段用以完成某些功能的源代码,Excel中的

宏以Visual Basic(以后简称VB)编写,存储后的.bas文件可以用记事本打开,里面记录的就是编写的代码。

VB是一门高级编程语言,其语法简单易于掌握,适合初学者学习。本教程中只对VB进行初步讲解,如果需要深入学习请参照VB相关的专门书籍(Visual Basic编辑器中的帮助也有详细介绍)。

顺序、选择、循环是编程的三种结构,合理组合嵌套这三种结构就可以解决所有编程问题。默认情况下,代码按照顺序结构执行,所以下面只介绍选择和循环结构的语句表达。

选择结构:

选择结构非常常见,它的作用是使程序根据条件的不同执行不同的语句。这里我们只介绍最简单的一种语句。

If condition Then [statements] [Else elsestatements]

或者

If condition Then

[statements]

[ElseIf condition-n Then

[elseifstatements] ...

[Else

[elsestatements]]

End If

注释:condition:条件表达式;statements:执行语句;[]中的内容为可选内容。

第一句为写在一行的选择语句,其表达的意思如英文一样就是“如果……就……否则……”,黑体的“If”“Then”是关键词必不可少,后面“[]”中的“Else”为可选项。下面的语句为多行表达的形式,要注意回车的位置和结尾处加上“End If”。还需要注意的是关键字后面一定要加空格或回车。具体用法将在后文的实例中介绍。

循环结构:

循环结构适合嵌套使用,这里只介绍固定次数循环语句,如需了解条件循环,请参考VB相关书籍。

For counter=start To end [Step step]

[statements]

[Exit For]

[statements]

Next [counter]

例:

For i = 1 To 10 Step 1

Next i

“For”“To”“Step”“Exit For”“Next”都为关键字,其中“For”“To”“Next”必不可少。以上面例子做为讲解。例中语句的意思为“使得i首先等于1,然后执行…的内容,接着使i 自身增加1,再执行…的内容,一直到i等于10,最后执行…的

内容后,停止循环,进入下一条语句”。本例中…的内容一共执行了10次。“Step”后面的数为每次i增加多少,如果不写“Step”则默认每次加1。最后i等于11。这里的i实际上就是人为定义的一个变量,下面介绍变量的概念。

变量:

变量实际上就是用字母汉字等标识代表一个“数”,而这个“数”在计算过程中也是可以变化的(与常量相反),命名的原则和“数”的类型,参考VB相关书籍。这里推荐用字母串或汉字(不要与VB关键字相同)命名变量。下面讲解变量基础知识。

1)变量的声明:

Dim abc

虽然VB容许不用事先声明变量,但是为了程序易读,在我们使用变量前都要对它进行声明。上面的语句的意思就是“声明了一个叫做abc的变量”。

2)变量的赋值:

abc = 10

abc = abc + 5

变量赋值不同于方程计算,它的顺序是先计算等号右边表达式的值,然后再赋给等号左边的变量(等号左边一般情况下只允许是一个变量)。上式第一句的意思是“把10赋予变量abc”。执行完这句后变量abc的值就是10。下一句的意思是“先计算等号

右边变量abc加5的值,然后再把值赋给变量abc”。先计算变量abc加5为15,然后再把15赋给变量abc。所以最后abc的值是15。

3)变量的计算:

上面已经提到变量的“+”运算,需要说明的是等号右边的表达式不仅可以是变量和数的运算,也可以是变量和变量的运算,且变量和数的个数理论上没有限制。所以我们学过的四则运算“+”“-”“*”“/”,还有括号“()”乘方“^”等都可以运用(括号必须是半角英文(),乘方3^5表示35)。当然还有其他运算需要大家自学。

4)变量的比较:

在选择语句中,“If”后的条件表达式需要用到比较,简单的有大于“>”、小于“<”、等于“=”、大于等于“>=”、小于等于“<=”、不等于“<>”。具体应用见下一章实例。

有了以上的知识我们就可以进行实例的讲解了,但是由于省略了大量VB的内容,所以这就要求大家在以后的学习实践中循序渐进地补充VB编程知识。

3.自定义函数实例讲解

例1.

如图我们已知矩形截面的宽和高,求其惯性矩。由于矩形惯性矩计算公式为:

12h b 3

I

由于没有直接的Excel 公式计算,所以我们需要自定义函数。在第一章介绍的模块1的编写环境中输入以下代码,并保存。

Function I(b, h) I = (b * h ^ 3) / 12 End Function

注意所有符号均为半角英文,实际如上图。返回Excel界面,鼠标点击C3单元格,点击插入—>函数,下拉菜单中选择用户定义里面就有刚刚编写的I函数了。

选择后,第一个参量选单元格A3,第二个参量选单元格B3,确定后即可计算出结果,如图。

下拉C3单元格右下角即可得出所有惯性矩。如图。

下面我们详细讲解一下例1中的代码。

Function I(b, h)

I = (b * h ^ 3) / 12

End Function

一、三句是声明函数的必要格式,其通用格式为:

Function 函数名(参数变量1, 参数变量2,…,参数变量n)

……

函数内部语句

……

End Function

其中函数名就是我们在Excel中引用这个函数的名字,如上例中用户定义里面的I函数。参数变量就是我们编写这个函数需要的参数,其名字可以随意起,为了方便上例中就用“b”和“h”表示宽和高了。参数变量可以有多个,也可以没有,类型可以是一个单元格,也可以是多个单元格。之后会讲到多个单元格参数变量。

第二句“I = (b * h ^ 3) / 12”函数的运算语句,这里的I虽然是函数名,但它也是代表函数值的变量,它的作用就是存储函数值。等号左边是把从Excel表格中传递来的宽“b”和高“h”进行计算得到惯性矩,然后赋值给函数值变量。这样最后的函数值就是惯性矩了。

例2.

这个例子研究如何判断计算出的惯性矩是否大于500。新函数可以在原来函数下面书写,代码如下:

Function over(q)

If q > 500 Then

over = "是"

Else

over = "否"

End If

End Function

应用此函数计算。在D3处插入函数,取值范围选择C3单元格。确定后,右下角拉下。

确定后,右下角拉下。

代码分析。函数名为over,只有一个参数变量q,它用来存储上一个函数计算出来的惯性矩(直接从Excel表中读取)。中间的判断语句意思为“如果q大于500则函数值over为‘是’,

否则函数值over为‘否’”。从中可以看到函数值和变量还可以存储字符,但是在代码中一定要用””标出(英文半角)。If和then 中间的部分是判断条件,其中经常为逻辑表达式(请参照VB课程)。

例3.

统计选中区域内大于500的个数。代码如下:

Function num(a)

Dim r

Dim i

num = 0

r = a.Rows.Count

For i = 1 To r

If a(i, 1) > 500 Then num = num + 1

Next i

End Function

代码分析。函数名为num,参数变量为a,但是这里的a是一个范围,它代表了多个单元格,本例中它代表了一列的单元格(上图虚线框)。Dim r和Dim i定义了两个变量,num=0使得函数值变量初始值为零。r = a.Rows.Count等号右边表示参数变量a 的行个数,表达式表示将a的行数赋予r。

For i = 1 To r

If a(i, 1) > 500 Then num = num + 1

Next i

为一个循环语句,从i=1一直循环到i=r,循环体中是一个判断语句,a(i,1)表示a的第i行第1列单元格的值,这个语句表示“判断从a第1行第1列单元格到a最末行第1列单元格的值是否大于500,若大于500,每次循环num自加1。”

由于a的范围我们只考虑了单列的情况,如果a去为多行多

列那么就需要再进行一次循环,代码如下:

Function num(a)

Dim r

Dim i

Dim j

Dim c

num = 0

c = a.Columns.Count

r = a.Rows.Count

For i = 1 To r

For j = 1 To c

If a(i, j) > 500 Then num = num + 1 Next j

Next i

End Function

基础内容已经讲完,今后还需大家自学提高。

Excel制表单元格自定义格式参数详解(精)

单元格自定义格式参数详解 1、”G/通用格式”:以常规的数字显示,相当于”分类”列表中的”常规”选项。 例:代码:”G/通用格式”。10显示为10;10.1显示为10.1。 2、“#”:数字占位符。只显有意义的零而不显示无意义的零。小数点后数字如大于”#”的数量,则按”#”的位数四舍五入。 例:代码:”###.##”,12.1显示为12.10;12.1263显示为:12.13 3、”0”:数字占位符。如果单元格的内容大于占位符,则显示实际数字,如果小于点位符的数量,则用0补足。例:代码:”00000”。1234567显示为1234567;123显示为00123 代码:”00.000”。100.14显示为100.140;1.1显示为01.100 4、”@”:文本占位符,如果只使用单个@,作用是引用原始文本, 要在输入数字数据之后自动添加文本,使用自定义格式为:”文本内容”@;要在输入数字数据之前自动添加文本,使用自定义格式为:@”文本内容”。@符号的位置决定了Excel 输入的数字数据相对于添加文本的位置。 如果使用多个@,则可以重复文本。 例:代码”;;;" 集团"@"部" “,财务显示为:集团财务部 代码”;;;@@@“,财务显示为:财务财务财务 5、”*”:重复下一次字符,直到充满列宽。 例:代码:”@*-”。”ABC ”显示为”ABC-------------------” 可就用于仿真密码保护:代码”**;**;**;**”,123显示为:************ 6、”,”:千位分隔符

例:代码” #,###“,12000显示为:12,000 7、\:用这种格式显示下一个字符。" 文本" ,显示双引号里面的文本。 “\”:显示下一个字符。和“”””用途相同都是显示输入的文本,且输入后会自动转变为双引号表达。 例:代码" 人民币 "#,##0,,"百万" ,与\人民币 #,##0,,\百万,输入1234567890显示为:人民币 1,235百万 8、“?”:数字占位符。在小数点两边为无意义的零添加空格,以便当按固定宽度时,小数点可对齐,另外还用于对不等到长数字的分数 例:分别设置单元格格式为”??.?? ”和”???.??? ”, 对齐结果如下: 输入12.1212 显示12.12 12.121 9、颜色:用指定的颜色显示字符。可有八种颜色可选:红色、黑色、黄色,绿色、白色、兰色、青色和洋红。 例:代码:“[青色];[红色];[黄色];[兰色]”。显示结果为正数 为青色,负数显示红色,零显示黄色,文本则显示为兰色 [颜色N]:是调用调色板中颜色,N 是0~56之间的整数。例:代码:“[颜色3]”。单元格显示的颜色为调色板上第3种颜色。、 10、条件:可以单元格内容判断后再设置格式。条件格式化只限于使用三个条件,其中两个条件是明确的,另个是“所有的其他”。条件要放到方括号中。必须进行简单的比较。例:代码:“[>0]”正数”;[=0];”零”;负数”。显示结果是单元格数值大于零显示正数,等于0显示零,小于零显示“负数”。 11、“!”:显示“" ”。由于引号是代码常用的符号。在单元格中是无法用""" 来显示出来“" ”。要想显示出来,须在前加入“!”

Excel(ESteel)自定义函数源代码

Public Function DJ(钢筋直径As Single, 最小搭接直径As Single, 搭接类别As String, 机械接头As String, 锚固As Single) Dim x As Integer, X1 As Integer, X2 As Integer, a As Integer If 钢筋直径> 0 Then a = 1 Else a = 0 End If If 钢筋直径> 最小搭接直径Then If 机械接头= "双面焊10D" Then DJ = 钢筋直径+ 2 End If If 机械接头= "单面焊5D" Then DJ = 钢筋直径/ 2 + 2 End If If 机械接头= "直螺纹" Then DJ = 0 End If End If If 钢筋直径<= 最小搭接直径Then If 搭接类别= "腰筋G" Then DJ = 钢筋直径* 1.5: x = 1 End If If 搭接类别= "搭接100%" Or 搭接类别= "构造柱" Then DJ = MAX(锚固* 1.6, 30, 0, 0) * a: X1 = 1 End If If 搭接类别= "Q" Or 搭接类别= "Z" Or 搭接类别= "搭接25%" Then DJ = MAX(锚固* 1.2, 30, 0, 0) * a: X2 = 1 End If If x + X1 + X2 = 0 Or 搭接类别= "" Then DJ = MAX(锚固* 1.4, 30, 0, 0) * a End If End If End Function Public Function MG(抗震级别As Single, 钢筋级别As Single, 砼号C As Single, 钢筋直径As Single) Dim j As Single Dim k As Single Dim g As Single If 钢筋直径>= 28 Then If 钢筋级别>= 2 Then j = 1.1 Else j = 1

EXCEL常见基本用法

EXCEL用法大全 2009年11月23日星期一09:31 01、如何在已有的单元格中批量加入一段固定字符? 例如:在单位的人事资料,在excel中输入后,由于上级要求在原来的职称证书的号码全部再加两位,即要在每个人的证书号码前再添上两位数13,如果一个一个改的话实在太麻烦了,那么我们可以用下面的办法,省时又省力: 1)假设证书号在A列,在A列后点击鼠标右键,插入一列,为B列; 2)在B2单元格写入:="13"&A2后回车; 3)看到结果为13xxxxxxxxxxxxx了吗?鼠标放到B2位置,单元格的下方不是有一个小方点吗,按着鼠标左键往下拖动直到结束。当你放开鼠标左键时就全部都改好了。若是在原证书号后面加13则在B2单元格中写入:=A2&“13”后回车。 02、如何设置文件下拉窗口的最下面的最近运行的文件名个数? 打开“工具”,选“选项”,再选“常规”,在“最近使用的文件清单”下面的文件个数输入框中改变文件数目即可。若不在菜单中显示最近使用的文件名,则将“最近使用的文件清单”前的复选框去掉即可。 03、在EXCEL中输入如“1-1”、“1-2”之类的格式后它即变成1月1日,1月2日等日期形式,怎么办? 这是由于EXCEL自动识别为日期格式所造成,你只要点击主菜单的“格式”菜单,选“单元格”,再在“数字”菜单标签下把该单元格的格式设成文本格式就行了。 04、在EXCEL中如何使它象WORD一样的自动定时保存文件? 点击“工具”菜单“自动保存”项,设置自动保存文件夹的间隔时间。如果在“工具”菜单下没有“自动保存”菜单项,那么执行“工具”菜单下“加载宏...”选上“自动保存”,“确定”。然后进行设置即可。 05、用Excel做多页的表格时,怎样像Word的表格那样做一个标题,即每页的第一行(或几行)是一样的。但是不是用页眉来完成? 在EXCEL的文件菜单-页面设置-工作表-打印标题;可进行顶端或左端标题设置,通过按下折叠对话框按钮后,用鼠标划定范围即可。这样Excel就会自动在各页上加上你划定的部分作为表头。 06、在Excel中如何设置加权平均? 加权平均在财务核算和统计工作中经常用到,并不是一项很复杂的计算,关键是要理解加权平均值其实就是总量值(如金额)除以总数量得出的单位平均值,而不是简单的将各个单位值(如单价)平均后得到的那个单位值。在Excel中可设置公式解决(其实就是一个除法算式),分母是各个量值之和,分子是相应的各个数量之和,它的结果就是这些量值的加权平均值。 07、如果在一个Excel文件中含有多个工作表,如何将多个工作表一次设置成同样的页眉和页脚?如何才能一次打印多个工作表? 把鼠标移到工作表的名称处(若你没有特别设置的话,Excel自动设置的名称是“sheet1、sheet2、sheet3.......”),然后点右键,在弹出的菜单中选择“选择全部工作表”的菜单项,这时你的所有操作都是针对全部工作表了,不管是设置页眉和页脚还是打印你工作表。 08、EXCEL中有序号一栏,由于对表格进行调整,序号全乱了,可要是手动一个一个改序号实在太慢太麻烦,用什么方法可以快速解决? 如果序号是不应随着表格其他内容的调整而发生变化的话,那么在制作EXCEL表格时就应将序号这一字段与其他字段分开,如在“总分”与“排名”之间空开一列,为了不影响显示美观,可将这一空的列字段设为隐藏,这样在调整表格(数据清单)的内容时就不会影响序号了。

Excel自定义函数157个(精)

自定义函数功能 查看代码: 自定义函数取值范围如何设定 相当于VLOOKUP 吧,查询某一值第num 次出现的值 返回指定列数的列标 用指定字符替换某字符 从右边开始查找指定字符在字符串中的位置 将20040510数字格式,转换为2004-5-10的日期格式的函数工龄计算: 计算日期差,除去星期六、星期日的自定义函数 這是一個將英文字反轉的自定函數 关于个人所得税的 一个能计算是否有重复单元的函数 试编写数字金额转中文大写的函数 人民币大小写转换函数 获取区域颜色值: 获取活动工作表名的: 显示在“插入函数”对话框的“或选择类别”下拉列表中 复合函数

对工作表的第一列进行各种查询 序数词转换函数 获取最后一行行数的: 判断是否连接在线的函数 查找一字符串(withinstr在另一字符串中 从工作表第一行的标题文字以数字形式返回所在列号多工作表有条件求和 有的时候需要返回多个数值,那就是用返回数组吧Excel 自定义函数返回一组字符串 也来个返回指定列数的列标号自定义函数 返回 Column 英文字 查找指定列名的列数 文字格式的时间(分:秒转化为数字格式(秒 将"hh:mm:ss"格式的时分秒数转换成秒数 试编写金额中文大写转数字函数 身份证号码侦测自定义函数 显示公式的函数 为财务人员理帐查找用的 数值转换为字符地址

字符地址转换为数值 VB 中用的,虽然VBA 中也有一个Application.Wait 功能得到字符串实际的长度(以单字节记) 也做个个人所得税 18位身份证最后一位有效性验证 计算符合maturity condition的拆解金额 相当于多个vlookup 函数相加, 判断表是否存在的函数 我这个是角度转弧度的,以供大家参考 比较相同的字符串 對選定的陣列進行排序 取得指定月份天數 排序工作表活頁薄 統計陣列中非重復數據個數 摘取子字符串自定义函数 根据列表返回列序号 查找某值在某区域第n 次出现时对应列的值 刪除當前工作表中的全部超連接。 取得相近數據

Excel自定义求农历函数――nongli(公历日期,显示序号)

Option Base 1 Dim rq As Integer '日期 Dim y As Date '农历正月月初一的阳历日期 Dim yts As Variant '农历每月的天数 Dim yy(2) As Integer '农历闰月数、阳历闰年数(闰年为1,不闰年为0) Dim nl(3, 385) As String '阳历日期字符串、农历日期字符串、农历闰月字符串 Function NONGLI(glrq As Date, nlr As Integer) Dim X As Integer, i As Integer, k As Integer, n1 As Integer, n2 As Integer X = Year(glrq) If X < 1900 Or glrq > #1/28/2101# Then NONGLI = "?" Exit Function End If '1、将X年的阴阳历等,通过运行程序2,装入数组 If X < 2021 Then Call Array1(X, n1, glrq) If X > 2020 Then Call Array2(X, n1, glrq) '2、查找阳历日期所在数组的序号rq di2bu: rq = 0 If X = 1899 Then rq = Day(glrq)

Else For i = 1 To n1 If nl(1, i) = glrq Then rq = i: Exit For Next i End If '3、填写"农历日期"(包括节日、纪念日) Dim nongli1$, yr$, yuefen$, yf$, rizi$, rz$ Dim jr1 As String, jr2 As String, jr3 As String nongli1 = nl(2, rq)'农历日期以"2014-2-1"或"2014-闰9-1"的形式表示 yr = Strings.Right(nongli1, Strings.Len(nongli1) - 5) '农历日期以"2-1"或"闰9-1"形式表示yuefen = Strings.Left(yr, Strings.InStrRev(yr, "-") - 1) '农历的月份以"2"或"闰9"形式表示rizi = Strings.Right(yr, Strings.Len(yr) - Strings.InStrRev(yr, "-")) '农历的日子以"2"形式表示Dim yuefenB As Variant, yfB As Variant yuefenB = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, "闰2", "闰3", "闰4", "闰5", "闰6", "闰7", "闰8", "闰9", "闰10", "闰11", "闰12") yfB = Array("正月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "冬月", "腊月", "闰二月", "闰三月", "闰四月", "闰五月", "闰六月", "闰七月", "闰八月", "闰九月", "闰十月", "闰冬月", "闰腊月") For i = 1 To 23'农历的月份以汉字形式表示 If yuefen = yuefenB(i) Then yf = yfB(i): Exit For Next i Dim rzB As Variant

EXCEL中单元格格式的自定义详解.

EXCEL中单元格格式的自定义详解 excel单元格自定义格式1 代码结构组成分为四个部分,中间用“;”号分隔,具体如下: 正数格式;负数格式;零格式;文本格式 各个参数的涵义 1、“G/通用格式”:以常规的数字显示,相当于“分类”列表中的“常规”选项。 例:代码:“G/通用格式”。10显示为10;10.1显示为10.1。 2、“0”:数字占位符。如果单元格的内容大于占位符,则显示实际数字,如果小于点位符的数量,则用0补足。 例:代码:“00000”。1234567显示为1234567;123显示为00123 代码:“00.000”。100.14显示为100.140;1.1显示为01.100 3、“#”:数字占位符。只显有意义的零而不显示无意义的零。小数点后数字如大于“#”的数量,则按“#”的位数四舍五入。

例:代码:“###.##”,12.1显示为12.10;12.1263显示为:12.13 4、“?”:数字占位符。在小数点两边为无意义的零添加空格,以便当按固定宽度时,小数点可对齐,另外还用于对不等到长数字的分数 例:分别设置单元格格式为“??.??“和“???.???”,对齐结果如下:例:设置单元格自定义格式“# ??/???”。“1.25”显示为“1 1/4” 5、“.”:小数点。如果外加双引号则为字符。 例:代码“0.#”。“11.23”显示为“11.2” 6、“%”:百分比。 例:代码“#%”。“0.1”显示为“10%” 7、“,”:千位分隔符。数字使用千位分隔符。如时在代码中“,”后空,则把原来的数字缩小1000倍。 例:代码:“#,###”。“10000”显示为“10,000” 代码:“#,”。10000显示为10。

VSTO4.0创建EXCEL自定义函数

前段时间装了个visual studio 2010,试着用里面的VSTO4.0,但是对如何生成一个自定义函数始终搞不明白(之前也看了《VSTO开发指南》,但觉得里面所讲的东西太泛了,而且版本不一样,形式也改变了不少),终于在网上看到有人写出一个完整的过程(原文请看https://www.360docs.net/doc/4f5787657.html,/brooks-dotnet/archive/2011/01/16/1936871.html),但在实操中还是有不少问题,但经过多次尝试,终于解决了所遇到的问题,现在我就根据原文的内容以及建立过程中所遇到的问题,重新整理后讲述建立一个自定义函数的过程。 一、启动VS2010,(这里尝试着用C#来编写)新建一个类库,填好名称之后按确定,开始编码。 二、进入编程界面后,先引用必须的类库 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; using Microsoft.Win32; using Microsoft.Office.Interop.Excel 设置GUID及COM的一些特性 [Guid("A4AAE79B-9587-4014-BABB-966C5DF76C83")] [ClassInterface(ClassInterfaceType.AutoDual),ComVisible(true)] 如图示:

Guid这个标识码可用LINQPad程序来获取(可从https://www.360docs.net/doc/4f5787657.html,/下载) 在类中,除了有函数主体外,还必须有注册及注销时的行为语句,所以必须添加以下语句:#regi on COM Related [ComRegisterFunction] public static void Regi sterFunction(Type type) { Registry.ClassesRoot.CreateSubKey(GetSubKeyName(type, "Programmable")); var key = Registry.ClassesRoot.OpenSubKey(GetSubKeyName(type, "InprocServer32"), true); key.SetValue("", Environment.SystemDirectory + @"\mscoree.dll", Regi stryValueKind.String); } [ComUnregisterFunction] public static void Unregi sterFuncti on(Type type) { Registry.ClassesRoot.DeleteSubKey(GetSubKeyName(type, "Programmable"), false); } private static string GetSubKeyName(Type type, string subKeyName)

Excel自定义单元格格式详解

Excel自定义单元格格式详解 1、“G/通用格式”:以常规的数字显示,相当于“分类”列表中的”“常规”选项。 例:代码:”G/通用格式”。10显示为10;10.1显示为10.1。 2、“#”:数字占位符。只显有意义的零而不显示无意义的零。小数点后数字如大于“#”的数量,则按“#”的位数四舍五入。 例:代码:”###.##”,12.1显示为12.10;12.1263显示为:12.13 3、”0”:数字占位符。如果单元格的内容大于占位符,则显示实际数字,如果小于点位符的数量,则用0补足。 例:代码:”00000”。1234567显示为1234567;123显示为00123 代码:”00.000”。100.14显示为100.140;1.1显示为01.100 4、”@”:文本占位符,如果只使用单个@,作用是引用原始文本。 要在输入数字数据之后自动添加文本,使用自定义格式为:“文本内容”@;要在输入数字数据之前自动添加文本,使用自定义格式为:@“文本内容”。@符号的位置决定了Excel输入的数字数据相对于添加文本的位置。 如果使用多个@,则可以重复文本。 例:代码”;;;"集团"@"部"“,财务显示为:集团财务部 代码”;;;@@@“,财务显示为:财务财务财务 5、“*”:重复下一个字符,直到充满列宽。 例:代码:”@*-”。”ABC”显示为”ABC-------------------” 可就用于仿真密码保护:代码”**;**;**;**”,123显示为:************ 6、“,”:千位分隔符 例:代码“#,###”,12000显示为:12,000 7、\:用这种格式显示下一个字符。"文本",显示双引号里面的文本。 “\”:显示下一个字符。和””用途相同都是显示输入的文本,且输入后会自动转变为双引号表达。 例:代码"人民币"#,##0,,"百万",与\人民币#,##0,,\百万, 输入1234567890显示为:人民币1,235百万 8、“?”:数字占位符。在小数点两边为无意义的零添加空格,以便当按固定宽度时,小数点可对齐,另外还用于对不等到长数字的分数 例:分别设置单元格格式为“??.??”和“???.???”,对齐结果如下: 输入12.1212 显示12.12 12.121 9、颜色:用指定的颜色显示字符。可有八种颜色可选:红色、黑色、黄色,绿色、白色、兰色、青色和洋红。 例:代码:“[青色];[红色];[黄色];[兰色]”。显示结果为正数为青色,负数显示红色,零显示黄色,文本则显示为兰色 [颜色N]:是调用调色板中颜色,N是0~56之间的整数。 例:代码:“[颜色3]”。单元格显示的颜色为调色板上第3种颜色。 10、条件:可以对单元格内容判断后再设置格式。条件格式化只限于使用三个条件,其中两个条件是明确的,另个是“所有的其他”。条件要放到方括号中。必须进行简单的比较。 例:代码:“[>0]”正数”;[=0];”零”;负数”。显示结果是单元格数值大于零显示正数,等于0显示零,小于零显示“负数”。 11、“!”:显示“"”。由于引号是代码常用的符号。在单元格中是无法用"""来显示出来“"”。要想显示出来,须在前加入“!”强制显示后面的字符。 例:代码:“#!"”。“10”显示“10"” 代码:“#!"!"”。“10”显示“10""” 12、时间和日期代码常用日期和时间代码 “YYYY”或“YY”:按四位(1900~9999)或两位(00~99)显示年(四个Y 表示的年代码可以用e代替显示四位的年。) “MM”或“M”:以两位(01~12)或一位(1~12)表示月。 “DD”或“D”:以两位(01~31)或一位(1-31)来表示天。 例:代码:“YYYY-MM-DD”。2005年1月10日显示为:“2005-01-10” excel单元格自定义格式1 代码结构组成代码码分为四个部分,中间用“;”号分隔,具体如下: 正数格式;负数格式;零格式;文本格式 各个参数的涵义

Excel自定义函数实例集锦文章

在Excel中自定义函数 Excel函数虽然丰富,但并不能满足我们的所有需要。我们可以自定义一个函数,来完成一些特定的运算。下面,我们就来自定义一个计算梯形面积的函数: 1.执行“工具→宏→Visual Basic编辑器”菜单命令(或按“Alt+F11”快捷键),打开Visual Basic编辑窗口。 2.在窗口中,执行“插入→模块”菜单命令,插入一个新的模块——模块1。 3.在右边的“代码窗口”中输入以下代码: Function V(a,b,h) V = h*(a+b)/2 End Function 4.关闭窗口,自定义函数完成。 以后可以像使用内置函数一样使用自定义函数。 提示:用上面方法自定义的函数通常只能在相应的工作簿中使用。

经验分享Excel中自定义函数实例剖析 一、认识VBA 在介绍自定义函数的具体使用之前,不得不先介绍一下VBA,原因很简单,自定义函数就是用它创建的。VBA的全称是Visual Basic for Ap pli ca tion,它是微软最好的通用应用程序脚本编程语言,它的特点是容易上手,而且功能非常强大。 在微软所有的Office组件中,如Word、Access、Powerpoint等等都包含VBA,如果你能在一种Office组件中熟练使用VBA,那么在其它组件中使用VBA的原理是相通的。 Excel中VBA主要有两个用途,一是使电子表格的任务自动化;二是可以用它创建用于工作表公式的自定义函数。 由此可见,使用Excel自定义函数的一个前提条件是对VBA基础知识有所了解,如果读者朋友有使用Visual Basic编程语言的经验,那么使用VBA时会感觉有很多相似之处。如果读者朋友完全是一个新手,也不必太担心,因为实际的操作和运用是很简单的。 二、什么时候使用自定义函数? 有些初学Excel的朋友可能有这样疑问:Excel已经内置了这么多函数,我还有必要创建自己的函数吗? 回答是肯定的。原因有两个,它们也正好可以解释什么时候使用Excel自定义函数的问题。 第一,自定义函数可以简化我们的工作。 有些工作,我们的确可以在公式中组合使用Excel内置的函数来完成任务,但是这样做的一个明显缺点是,我们的公式可能太冗长、繁琐,可读性很差,不易于管理,除了自己之外别人可能很难理解。这时,我们可以通过使用自定义函数来简化自己的工作。 第二,自定义函数可以满足我们个性化的需要,可以使我们的公式具有更强大和灵活的功能。 实际工作的要求千变万化,仅使用Excel内置函数常常不能圆满地解决问题,这时,我们就可以使用自定义函数来满足实际工作中的个性化需求。

EXCEL自定义格式详解

EXCEL自定义格式详解 ”G/通用格式”:以常规的数字显示,相当于”分类”列表中的”常规”选项。 例:代码:”G/通用格式”。10显示为10;显示为。 2、“#”:数字占位符。只显有意义的零而不显示无意义的零。小数点后数字如大于”#”的数量,则按”#”的位数四舍五入。 例:代码:”###.##”,显示为;显示为: 3、”0”:数字占位符。如果单元格的内容大于占位符,则显示实际数字,如果小于点位符的数量,则用0补足。 例:代码:”00000”。1234567显示为1234567;123显示为00123 代码:”00.000”。显示为;显示为 4、”@”:文本占位符,如果只使用单个@,作用是引用原始文本, 要在输入数字数据之后自动添加文本,使用自定义格式为:”文本内容”@;要在输入数字数据之前自动添加文本,使用自定义格式为:@”文本内容”。@符号的位置决定了Excel 输入的数字数据相对于添加文本的位置。 如果使用多个@,则可以重复文本。 例:代码”;;;"集团"@"部"“,财务显示为:集团财务部 代码”;;;@@@“,财务显示为:财务财务财务 5、”*”:重复下一次字符,直到充满列宽。 例:代码:”@*-”。”ABC”显示为”ABC-------------------” 可就用于仿真密码保护:代码”**;**;**;**”,123显示为:************ 6、”,”:千位分隔符 例:代码” #,###“,12000显示为:12,000 7、\:用这种格式显示下一个字符。"文本",显示双引号里面的文本。 “\”:显示下一个字符。和“”””用途相同都是显示输入的文本,且输入后会自动转变为双引号表达。 例:代码"人民币 "#,##0,,"百万",与\人民币 #,##0,,\百万, 输入90显示为:人民币 1,235百万 8、“”:数字占位符。在小数点两边为无意义的零添加空格,以便当按固定宽度时,小数点可对齐,另外还用于对不等到长数字的分数 例:分别设置单元格格式为”.”和”.”,对齐结果如下: 输入显示 9、颜色:用指定的颜色显示字符。可有八种颜色可选:红色、黑色、黄色,绿色、白色、兰色、青色和洋红。 例:代码:“[青色];[红色];[黄色];[兰色]”。显示结果为正数为青色,负数显示红色,零显示黄色,文本则显示为兰色

excel中161个VBA_自定义函数(超级实用)(精)

目录 '1.函数作用:返回 Column 英文字 (9) '2.函数作用:查询某一值第num 次出现的值................9 '3.函数作用:返回当个人工资薪金所得为2000元(起征点为850元时的应纳个人所得税税额.............................10 '4.函数作用:从形如"123545ABCDE"的字符串中取出数字....11 '5.函数作用:从形如"ABCD12455EDF"的字符串中取出数字...11 '6.函数作用:按SplitType 取得RangeName 串值中的起始位置12 '7.函数作用:将金额数字转成中文大写....................13 '8.函数作用:计算某种税金..............................18 '9.函数作用:人民币大、小写转换........................19 '10.函数作用:查汉字区位码.............................20 '11.函数作用:把公元年转为农历.........................21 '12.函数作用:返回指定列数的列标.......................42 '13.函数作用:用指定字符替换某字符.....................43 '14.函数作用:从右边开始查找指定字符在字符串中的位置...43 '15.函数作用:从右边开始查找指定字符在字符串中的位置...44 '16.函数作用:计算工龄.................................44 '17.函数作用:计算日期差,除去星期六、星期日.. (45) '18.函数作用:将英文字反转的自定函数 (46) '19.函数作用:计算个人所得税...........................46 '20.函数作用:一个能计算是否有重复单元的函数...........47 '21.数字金额转中文大写................................48 '22.函数 作用:将数字转成英文...........................49 '23.函数作用:人民币大小写转换.........................52 '24.函数作用:获取区域颜色值...........................53 '25.函数作用:获取活动工作表名.........................53 '26.函数作用:获取最后一行行数. (54) '27.函数作用:判断是否连接在线.........................54 '28.函数作用:币种转换.................................54 '29.函数作用:检验工作表是否有可打印内容...............55 '30. 函数作用:查找一字符串(withinstr在另一字符串中(findstr1中某一次(startnum出现 时的位置,返回零表示没找到。..................................................57 '31.函数作用:增加文件路径最后的“\”符号..............58 '32.函数作用:计算所得税...............................58 '33.函数作用:从工作表第一行的标题文字以数字形式返回所在列号..................................................58 '34.函数作用:在多个工作表中查找一个范围内符合某个指定条件的项目对应指定范围加总求和..........................59 '35.函数作用:返回

用VBA编写Excel自定义的累加函数

用VBA编写Excel自定义的累加函数 郑云勇 云南楚雄思远投资有限公司 摘要:Excel是常用的数据统计分析软件,本文介绍了用VBA编写加载宏的方法来扩展、定制Excel,以适合工程统计专业的特殊需要。下面,讨论如何实现一个自定义的具有任意合计形如“30.2m/165.45m3”的“分子/分母”工程量统计功能的函数,由于Sum函数系统已经内置,我们要实现的函数不妨命名为uLSum和uRSum。 关键词:Excel,定制,加载宏 1引言 电子表格软件Microsoft Excel具有快捷方便的数据输入方式和强大的数据处理能力,是工程地质中常用的数据统计分析软件,为我们的工作带来了极大的方便。但Excel毕竟只是一个通用的办公软件,对于工程专业中的各种特殊需求,它自然不会有专门的功能支持。比如:采矿工程师在做每年的采掘生产计划时,通常遇到要累加掘进工程量的合计数,即“30.5/125.6”加“120.2/625.8”的合计,我们通常的做法是分步完成,先将分子之、分母之和求出来后,在填入单元格中。或者将分子、分母分别填入两列中,分别用sum函数求和。这样既劳神,又容易出错,特别是对大量数据进行复杂的公式计算。如果从头编写一个独立、专门的计算程序来处理,则似有小题大作之嫌,而且还不能与Excel无缝集成。那么有

没有更好的解决办法呢?答案是肯定的,那就是定制Excel,通过编程扩展它的功能。 事实上,Excel作为Microsoft最优秀的软件之一,很早就开始提供了二次开发的接口,4.0版以前有XLM,4.0版又发布了Excel C API,5.0版则内置了VBA。现在的Excel,除了人所共知的操作功能外,还是一个完善的软件开发平台。它拥有完备的ActiveX Automation服务器和客户机机制,可以通过编程对其进行全方位的扩展、定制,实现各种自定义功能。基于ActiveX Automation技术,使用C/C++等多种支持Automation的编程语言均可控制Excel,但我们最为熟悉和常用的还是内置于Excel中的VBA。 2VBA简介 Visual Basic for Application(VBA)是Microsoft面向最终用户的应用软件编程语言。它最早出现于Microsoft的Excel和Project中,如今VBA已成为VB和所有Office产品的组件。另外,越来越多的软件开发商购买了VBA语言的使用权,如常用的绘图软件AutoCAD等均已支持VBA作为二次开发工具。这意味着我们懂得VB,就已经懂得了VBA,反之亦然。 VBA的最大特点和最大优点是利用面向对象(OOP)的ActiveX Automation技术,使语言的引擎在技术上与开发环境分离,这可以从在任何VBA的IDE环境中都可以看到VBA单独的入口得到印证。因此,VBA的功能在很大程度上依赖于它的客户显露的Automation 接口,例如,VB与Office套件中的VBA,能完成的功能就大不一样。

(完整版)Excel自定义函数方法拼音

Excel自定义函数方法: 1.启动Excel 2003 (其它版本请仿照操作) ,打开相应的工作表; 2.执行“工具→宏→Visual Basic编辑器”命令(或者直接按“Alt+F11”组合键),进入Visual Basic编辑状态; 3.执行“插入→模块”命令,插入一个新模块。再双击插入的模块,进入模块代码编辑 状态; 4.将代码输入其中; 5.代码输入完成后,关闭 V isual Basic 编辑窗口,返回 Excel 编辑状态; 6. 自定义函数就可以用了,如:选中 D2 单元格,输入公式: =getpy(A2) 。 有极个别的汉字不能转换,手动就可以了!很方便了。 Function pinyin (p As String) As String i = Asc(p) Select Case i Case -20319 To -20318: pinyin =“a” Case -20317 To -20305: pinyin =“ai” Case -20304 To -20296: pinyin =“an” Case -20295 To -20293: pinyin =“ang” Case -20292 To -20284: pinyin =“ao” Case -20283 To -20266: pinyin =“ba” Case -20265 To -20258: pinyin =“bai” Case -20257 To -20243: pinyin =“ban” Case -20242 To -20231: pinyin =“bang” Case -20230 To -20052: pinyin =“bao”

Excel自定义格式规则及其用法

自定义格式规则及其用法 一、自定义格式的进入 开始——单元格——格式——设置单元格格式--数字——自定义 二、基本原理 在格式代码中,最多可以指定四个节;每个节之间用分号进行分隔,这四个节顺序定义了格式中的正数、负数、零和文本; 只指定两个节,则第一部分用于表示正数和零,第二部分用于表示负数; 只指定了一个节,那么所有数字都会使用该格式; 如果要跳过某一节,则对该节仅使用分号即可。 三、基础字符 1.数字占位符,有三种:? # 0 2.中括号[]表示条件 3.逗号,千位分隔符,如用在代码最后,表示将数字缩小1000倍 4.分号,隔开条件,末尾可省

例一、输入1显示对号,输入2显示错号 代码:[=1]"√";[=2]"×" 操作方法: 步骤1 :选取要输入的区域,打开单元格格式设置窗口。 步骤2 :数字》自定义》输入以上代码; 注:√可以先在单元格中输入,然后粘到自定义格式框中。 例二、电话号码分段显示(手机号码,要求显示成*** **** ****的格式) 代码:000 0000 0000 操作方法: 打开单元格格式窗口》数字》自定义,在右侧的文本框中输入代码。

例三、自动添加上下箭头 代码: [颜色50][>0] ↑* 0.00;[颜色3][<0] ↓* 0.00 数据分析中,对比分析法是最常用的。可以自动添加上升和下降箭头的功能,非常非常的实用。正数:数字前添加绿色的上升箭头↑;负数:数字前添加红色的下降箭头↓ 设置方法: 打开单元格格式设置窗口》数字》自定义,在右侧的代码框中输入以上代码。 代码说明: 1 在自定义格式中可以设置条件,条件放在中括号内。如:[>0] 2 两个条件之间用分号(;)分隔,最多可以设置2个条件: [条件1]条件1显示的格式; [条件2]条件2显示的格式;非前两种条件显示的格式。

excel自定义函数编写方法

Excel自定义函数基础教程 1.总述、编写环境与设置 自定义函数功能是Excel中一个强大的扩展功能,它可以实现不同用户的特定计算要求。以使得Excel计算自主化、专业化,可以大大简化人工劳动(查表、专业公式计算、统计等)。所以编写与使用自定义函数应是每个工程计算人员必不可少的技能。本教程为零基础教程,特为呼和浩特职业技术学院编写,如需引用或咨询请联系526949738@https://www.360docs.net/doc/4f5787657.html,。 本教程以Excel2003为平台讲解,使用其他版本Excel的同学请参照学习。自定义函数需要应用宏编写,请进行如下设置。 工具—>宏—>安全性

写的宏了。 器,在弹出的窗口点击插入—>模块,即进入了编写环境。

选中相应的模块点击文件—>导出文件,就可以存储.bas的源文件。这样就可以方便存储整理,以便日后引用。 2.宏的概念与Visual Basic基础 有VB编程基础的同学可跳过此章。 宏实际上就是一段用以完成某些功能的源代码,Excel中的

宏以Visual Basic(以后简称VB)编写,存储后的.bas文件可以用记事本打开,里面记录的就是编写的代码。 VB是一门高级编程语言,其语法简单易于掌握,适合初学者学习。本教程中只对VB进行初步讲解,如果需要深入学习请参照VB相关的专门书籍(Visual Basic编辑器中的帮助也有详细介绍)。 顺序、选择、循环是编程的三种结构,合理组合嵌套这三种结构就可以解决所有编程问题。默认情况下,代码按照顺序结构执行,所以下面只介绍选择和循环结构的语句表达。 选择结构: 选择结构非常常见,它的作用是使程序根据条件的不同执行不同的语句。这里我们只介绍最简单的一种语句。 If condition Then [statements] [Else elsestatements] 或者 If condition Then [statements] [ElseIf condition-n Then [elseifstatements] ... [Else [elsestatements]] End If 注释:condition:条件表达式;statements:执行语句;[]中的内容为可选内容。

VBA自定义函数选合集(代码注释)

自定义函数选 附代码注释 By 蓝桥玄霜 前言 我们平时在工作表单元格的公式中常常使用函数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩,博大精深。在Excel内置函数和扩展函数中有十多个应用领域的函数,如数学与三角函数、统计函数、文本和数据函数、查找和引用函数、数据库函数、财务函数、日期和时间函数、信息函数、工程函数和宏表函数等等。 但是我们每个人还可能有各种各样的问题而不能直接应用这些函数得到解决,于是Excel也提供了VBA可以让我们自己编一个自定义函数来解决自己特定的需求。以下挑选一些自定义函数,由简到繁,附以代码注释,供大家参考。 第1例折扣函数 一、题目: 要求编写一个当销售数量大于等于100时,售价打九折的计算折扣的自定义函数。二、代码: Function Zekou(sul, jiag) As Double If sul>=100 Then Zekou =sul*jiag*0.1 Else Zekou =0 EndIf Zekou =Application.Round(Zekou,2) End Function 三、代码详解 1、Function Zekou(sul, jiag) As Double :自定义函数的开始语句。 自定义函数总是以Function开头,以End Function语句结束。自定义函数的代码一定要放在标准模块里面。 Zekou是函数名,名字可取一个较短的描述信名称,这样容易记忆。如sul数量和jiag 价格,这里用的是拼音字母。函数后括号里的两个变量叫做函数的参数。两个参数都没有显式声明数据类型,都是可变型数据类型variant。AS Double 表示函数返回值的数据类型是双精度浮点型数据。 2、If sul>=100 Then 如果sul(数量)大于等于100,那么 这是标准的If…Then…Else判断语句,意思是如果第一个条件成立,或者说满足了第一个条件,那么执行Then以后的语句;否则执行Else以后的语句。

相关文档
最新文档