自定义函数

自定义函数
自定义函数

VBA 自定义函数

一、什么是函数

一个函数就是预定的一个计算公式,可以快速地完成一个特定的计算。如:sum,index etc。

二、自定义函数

自定义函数是用户自己编写的函数;一个自定义函数就是一个function过程;编写了一个function过程就相当于编写了一个自定义函数。

三、为什么要创建自定义函数

1.简化工作,解决需要较多辅助列或使用较长公式才能完成的计算问题,比如后面的提取工作簿名称的应用。

2.解决不能用现有的工作簿函数完成的计算问题,如统计指定背景颜色的单元格个数。

下面通过一个例子来学习简单的编写自定义函数

例:下面表格中需要计算一些三角形的面积

B列是底边长,C列是高,要求在D列通过公式计算三角形面积。

(通常我们会在D3单元格用公式=B3*C3/2 来计算,然后把这个公式向D列下方拖动复制,得到其他公式。这只是一个简单的例子,通过它来学习编写简单的自定义函数)

1、打开VBA窗口

按ALT+F11调出VBA窗口,插入一个用户模块。

2、编写代码

通常自定义函数是用function命令开始的,在这个命令后面给它指定一个名字和参数

把下面这个自定义函数代码粘贴到刚插入的用户模块中就可以使用了。

Function sjxmj(di, gao)

sjxmj = di * gao / 2

End Function

这段代码非常简单只有三行,先看第一行,其中sjxmj是自己取的函数名字,括号中的是参数,也就是变量,di表示“底边长”,gao表示“高”,两个参数用逗号隔开。

再看第二行,这是计算过程,将di*gao/2这个公式赋值给sjxmj,即自定义函数的名字。再看第三行,它是与第一行成对出现的,当你手工输入第一行的时候,第三行的end function 就会自动出现,表示自定义函数的结束。

3、使用自定义函数

回到EXCEL窗口,我们在D3单元格中输入公式 =sjxmj(b3,c3) ,就会得到这一行的三角形面积了,它的使用方法同内置函数完全一样。

通过上面例子可以了解自定义函数的编写和使用方法,下面再介绍一个稍微复杂点的自定义函数。

比如下面统计成绩的表格,需要根据A1:D7的成绩表,统计出两门功能都在90分以上的学生人数。

通常这种时候需要在H3单元格使用数组公式

=SUM(IF(($B$2:$B$7=G3)*($D$2:$D$7>=90)*($E$2:$E$7>=90),1,0))

大家可以看到在H3单元格中的公式比较长,理解起来也有一定难度。

我们通过自定义函数也可以得到正确结果,函数代码如下:

Function 统计(a, b, c, d, e)

For i = 1 To a.Rows.Count

If b = a.Cells(i, 1) And a.Cells(i, c) >= e And a.Cells(i, d) >= e Then

统计 = 统计 + 1

End If

Next

End Function

这个函数用了五个参数(因为涉及到一个区域和四个条件)

参数a表示要统计的区域,在此例中为B2:E7

参数b表示要统计的是哪一个班级,在此例中为G3单元格

参数c表示数学成绩相对于区域第一列向右的列数,在此例中为3

参数d表示数学成绩相对于区域第一列向右的列数,在此例中为4

参数e表示分数,在此例中为90分

提示:要注意参数c和d“相对”于“区域”的列数,并非是从A列开始向右的列数。

把上面这段代码也粘贴到用户模块中就可以使用了

回到EXCEL窗口,在H3单元格中输入公式 =统计($B$2:$E$7,G3,3,4,90) 就可以显示正确结果了。

Function 统计2(a, b)

For i = 1 To a.Rows.Count

If b = a.Cells(i, 1) And a.Cells(i, 3) >= 90 And a.Cells(i, 4) >= 90 Then

统计 = 统计 + 1

End If

Next

End Function

在表格中的H3单元格中输入公式 =统计2($B$2:$E$7,G3)就可以了。

从上面可以看出,自定义函数可以使用“汉字”做为函数的名字,方便记忆,也可以根据实际情况对参数进行简化。

如果我们的成绩表格式是固定的,各科目成绩位置相对于区域也是固定的,而且要统计的分数也是固定的90分,就可以在自定义函数中将参数的数量减少到两个,如下:

(一) 计算个人调节税的自定义函数

任务

假设个人调节税的收缴标准是:工资小于等于800元的免征调节税,工资800元以上至1500元的超过部分按5%的税率征收,1500元以上至2000元的超过部分按8%的税率征收,高于2000元的超过部分按20%的税率征收。

分析

假设Sheet1工作表的A、B、C、D列中分别存放“姓名”、“总工资”、“调节税”、“税后工资”字段数据,如图1所示。

图1

平时使用较多的方法是借助嵌套使用IF函数计算,比如在C2单元格输入公式

“=IF(B2<=800,0,IF(B2<=1500,(B2-800)*0.05,IF(B2<=2000,700*0.05+(B2-1500)*0.08,700*0.05+500*0.0 8+(B2-2000)*0.2)))”,然后通过填充柄复制公式到C列的其余单元格。

既然公式能够解决问题,为什么还要使用自定义函数的方法呢?

正如前面提到的两个方面的原因:一是公式看起来太繁琐,不便于理解和管理;二是公式的处理能力在面对稍微复杂一些的问题时便失去效用,比如假设调节税的税率标准会根据年龄的不同而改变,那么公式可能就无能为力了。

使用自定义函数

下面就通过此例介绍使用自定义函数的全过程,即使是初学Excel的朋友,也会感觉其操作实际上是非常简单的。

1. 为了便于测试自定义函数的计算效果,可以先把上面采用公式计算的结果删去。然后选择菜单“工具→宏→Visual Basic编辑器”命令(或按下键盘Alt+F11组合键),打开Visual Basic窗口,我们将在这里自定义函数。

2. 进入Visual Basic窗口后,选择菜单“插入→模块”命令,于是得到“模块1”,在其中输入如下自定义函数的代码(图2):

Function TAX(salary)

Const r1 As Double = 0.05

Const r2 As Double = 0.08

Const r3 As Double = 0.2

Select Case salary

Case Is <= 800

TAX = 0

Case Is <= 1500

TAX = (salary - 800) * r1

Case Is <= 2000

TAX = (1500 - 800) * r1 + (salary - 1500) * r2

Case Is > 2000

TAX = (1500 - 800) * r1 + (2000 - 1500) * r2 + (salary - 2000) * r3

End Select

End Function

图2

3. 函数自定义完成后,选择菜单“文件→关闭并返回到Microsoft Excel”命令,返回到Excel工作表窗口,在C2单元格中输入公式“=TAX(B2)”回车后就计算出了第一个员工应付的个人调节税,然后用公式填充柄复制公式到其它后面的单元格,这样就利用自定义函数完成了个人调节税的计算(图3)。

图3

4. 从自定义函数的代码中可以看出,用这种方式,自定义函数的功能非常易于理解,同时如果税率改变,相应地变化r1、r2、r3的值即可。

通常,自定义的函数只能在当前工作薄使用,如果该函数需要在其它工作薄中使用,则选择菜单“文件→另存为”命令,打开“另存为”对话框,选择保存类型为“Mi rcosoft Excel加载宏”,然后输入一个文件名,如“TAX”单击“确定”后文件就被保存为加载宏(图4)。然后选择菜单“工具→加载宏”命令,打开“加载宏”对话框,勾选“可用加载宏”列表框中的“Tax”复选框即可,单击“确定”按钮后(图5),就可以在本机上的所有工作薄中使用该自定义函数了。

图4

图5

如果想要在其它机器上使用该自定义函数,只要把上面的加载宏文件复制到其它电脑上加载宏的默认保存位置即可。

说明:Windows XP系统下加载宏文件的默认保存位置为:C:\Documents and Settings\zunyue(用户帐户)\Application Data\Microsoft\AddIns文件夹。

(二) 计算奖金的自定义函数

任务

为了促进销售人员的工作积极性,销售部门经理制定了销售业绩奖金制度,奖金发放的标准奖金率如下:月销售额小于等于2800元的奖金率为4%,月销售额为2800元至7900元的奖金率为7%,月销售额为7900元至15000元的奖金率为10%,月销售额为15000元至30000元的奖金率为13%,月销售额为30000元至50000元的奖金率为16%,月销售额大于50000元的奖金率为19%。同时,为了鼓励员工持续地为公司工作,工龄越长对奖金越有利,具体规定为:参与计算的奖金率等于标准奖金率加上工龄一半的百分数。比如一个工龄为5年的员工,标准奖金率为7%时,参与计算的奖金率则为

9.5%=7%+(5/2)%。

分析

首先,我们在Excel2003中制作好如图6的Sheet1工作表,开始分析计算的方法。

图6

如果不考虑工龄对奖金率的影响,那么可以利用嵌套使用IF函数,在D2单元格输入公式

“=IF(B2<=2800,B2*4%,IF(B2<=7900,B2*7%,IF(B2<=15000,B2*10%,IF(B2<=30000,B2*13%,IF(B2<=50 000,B2*16%,B2*19%)))))”可以进行计算。

但是,该公式的一些弊端很明显:一是公式看起来太繁琐、不容易理解,而且IF函数最多只能嵌套7层,万一奖金率超过7个,那么这个方法就无能为力了。

另一方面,由于没有考虑工龄,所以该方法不能算是解决问题了,如果我们把工龄融入到上述公式中,这样公式就会显得更加冗长繁琐,以后的管理与调整都很不方便。

使用自定义函数

下面我们看看利用Excel自定义函数进行计算的全过程,有了实例一的基础,相信大家理解起来更容易了。不过这里与实例一有一个明显的差别是,该自定义函数使用了2个参数,请大家注意体会。

1. 在上述Excel工作表中,选择菜单“工具→宏→Visual Basic编辑器”命令,打开Visual Basic窗口,然后选择菜单“插入→模块”命令,插入一个名为“模块1”的模块。

2. 接着在模块编辑窗口中输入自定义函数的代码如下(图7):

Function REWARD(sales, years) As Double

Const r1 As Double = 0.04

Const r2 As Double = 0.07

Const r3 As Double = 0.1

Const r4 As Double = 0.13

Const r5 As Double = 0.16

Const r6 As Double = 0.19

Select Case sales

Case Is <= 2800

REWARD = sales * (r1 + years / 200)

Case Is <= 7900

REWARD = sales * (r2 + years / 200)

Case Is <= 15000

REWARD = sales * (r3 + years / 200)

Case Is <= 30000

REWARD = sales * (r4 + years / 200)

Case Is <= 50000

REWARD = sales * (r5 + years / 200)

Case Is > 50000

REWARD = sales * (r6 + years / 200)

End Select

End Function

图7

3. 从代码可以看出,我们自定义了一个名为REWARD的函数,它包含两个参数:销售额sales和工龄years。常量r1至r6分别存放着各个等级的奖金率,这样处理的好处是当奖金率调整时,修改非常方便。同时,函数的层次结构比前面的公式清晰,让人容易理解函数的功能。此外,当奖金率超过7个时,用自定义函数的方法仍然可以轻松处理。

4. 接下来用该自定义函数进行具体的计算。选择菜单“文件→关闭并返回到Microsoft Excel”命令,关闭Visual Basic窗口,返回Excel工作表。选中D2单元格,在其中输入“=reward(B2,C2)”,回车后就算出了第一个员工的奖金,然后利用公式填充柄复制该公式到后面的单元格,即可完成对其它员工奖金的计算(图8)。

图8

如果该自定义函数需要在其它工作薄或其它机器上使用,仿照实例一的操作方法进行即可。

小试牛刀自定义函数

目的:创建一个返回当前工作簿名称的自定义函数

操作过程:

1.插入一个标准模块

2.在模块中插入一个空的function过程

3.在function和end function 之间写入代码

Pulic Function WbName()

WbName = https://www.360docs.net/doc/5d7062137.html,

End Function

4.自定义函数也可以在Sub过程中使用如:

Sub test()

MsgBox”当前工作薄名称为:” &wbName ()

End Sub

进一步说明:如何为自定义函数添加说明和快捷键

>如果需要,可以通过宏对话框为自定义的函数添加快捷键设置和函数说明

注意:一定要把程序运行的结果返回给函数名,要不会出错。

创建Function过程的步骤

1.新插入一个标准模块

方法一:执行“插入”->“模块”菜单命令

方法二:在工程资源管理器中,单击右键,执行:“插入”->“模块”右键菜单命令2.插入一空的Function过程

方法一:执行“插入”->“函数”菜单命令,通过“添加过程”对话框完成。

方法二:在代码窗口手动输入完成。

3.在Function与End Function之间写入相应的代码。

4.将计算结果返回给过程名。

5.如果需要,可以通过宏对话框为自定义函数添加函数说明。

统计指定背景颜色的单元格个数

1. 可以使用宏表函数 get.cell(63, a1)来提取单元格的背景颜色索引值; 也可以通过录制宏来实现颜色索引值到提取。

2. 使用以上的操作步骤来插入自定义函数countcolor,代码如下:

Function countcolor(Rng As Rang, cel As Range) ‘第一个参数是区域,第二个参数是单元格的颜色

Dim Cindex as Integer

Cindex = Cel.Interior.ColorIndex‘将单元格的背景颜色索引值返回给Cindex

Dim n As Range

For Each n In Rng

If n.interior.ColorIndex = Cindex then

Countcolor = countcolor+1

End If

Next

End Function

3. 自定义函数不会自动刷新,但可以利用易失性函数的特点(当工作表自动计算时,函数也跟着计算)把自定义函数定义为易失性函数

Applicaion volatile 将自定义函数调设置为易失性函数

Function myrnd()

Application.Volatile'将自定义函数设置为易失性函数

myrnd = Rnd()

End Function

关于自定义函数的更多信息

1.声明函数的语法:

[Public | Private][Static] Function 函数名 ([函数]) [As 数据类型(函数返回值的数据类型)]

[语句块]

[函数名=过程结果]

[Exit Function]

[语名块]

[函数名=过程结果]‘最后必须把计算结果返回给过程名

End Function

2.可以在工作表中使用自定义函数,也可以在过程中使用自定义函数

3.自定义函数有自己的作用域,可以给自定义函数设置参数

4.可以通过Application的volatile的方法设置自定义为易失性函数

怎样存储自定义函数

1.将自定义函数工作簿保存成Excel加载宏

2.加载这个加载宏,这个这个自定义函数就可以在这个机器的excel上使用。如果需要在其他机器上使用该自定义函数,可以选择copy加载宏,然后加载。

课后补充

自定义函数使用规则

1、编写自定义函数时,必须在VBA模块中,而不是在与ThisWorkbook、工作表和用户窗体关联的代码模块中。

2、在自定义函数前加上Private关键字进行声明,该函数将不会出现在Excel的“粘贴函数”对话框中,但仍然可以在公式中运用它们。如果是专门为其他的VBA过程开发的自定义函数,则应该使用Private关键字进行声明。

3、通常,用户自定义函数后,在“粘贴函数”对话框中将会出现在“用户定义”类别中。如果希望自定义函数出现在其它的类别中,必须编写和执行VBA代码为自定义函数指定类别。如运行Application.MacroOptions Macro:=”SumPro”,Category:=4语句后,将自定义的SumPro函数指定给“统计函数”类别。

4、可以用MacroOptions方法:运行Application.MacroOptions Macro:="宏名

",Description:="参数说明"

或者从菜单-工具-宏-宏,输入自定义函数名,选择“选项”,在其中输入备注,退出即可。

5、与Sub过程不同,自定义函数Function过程并不出现在宏对话框中;当执行VBE编辑器中的“运行——运行子过程/用户窗体”命令时,如果光标位于某Function过程中,就不能获取宏对话框并从中选择要运行的宏。因此,在开发过程的时候,必须采取其它方式对自定义函数进行测试,可以设置调用该函数的过程;如果该函数是用在工作表公式中的,可以在工作表中输入简单的公式进行测试。

6、如果在公式中使用了自定义函数,但返回值“VALUE!”,表明函数中有错误。错误的原因可能是代码中的逻辑错误、可能给函数传递了不正确的参数、可能执行了禁用的动作如试图更改单元格的格式。

7、在自定义函数中使用参数时,可选参数必须在任何必需的参数之后。在参数名称前加上关键字Optional即可指定一个可选的参数。

如果必须确定某可选的参数是否传递给了某函数,应将该参数声明为Variant类型,然后在过程代码中使用IsMissing函数来进行判断。

要创建包含不定数量参数的自定义函数,使用一个数组作为最后一个(或惟一的)参数,并在数组前面加上关键字ParamArray。关键字ParamArray只能用于参数列表中的最后一个参数,其数据类型总是Variant并且是一个可选的参数。

8、在自定义函数的程序代码中,应确保至少有一次把合适的值赋给了函数的名称。

9、函数的名称与变量名称一样必须遵循一定的规则。最好不要采取与单元格地址相同的形式,并且还要避免使用与Excel内置函数名称相同的名称,否则,Excel会使用内置函数。10、通常情况下,VBA中对文本进行比较等操作是区分大小写的,若将语句Option Compare Text 添加到模块的顶部,则程序执行时不会区分大小写。

Excel 中自定义函数的相关限制说明

由工作表单元格中的公式调用的用户定义函数不能更改 Microsoft Excel 的环境。这意味着此类函数不能执行以下任何操作:

?在电子表格中插入、删除单元格或设置单元格格式。

?更改其他单元格中的值。

?在工作簿中移动、重命名、删除或添加工作表。

?更改任何环境选项,例如计算模式或屏幕视图。

?向工作簿中添加名称。

?设置属性或执行大多数方法。

用户定义函数旨在允许用户创建不包括在 Microsoft Excel 随附函数中的自定义函数。Microsoft Excel 中包括的函数也不能更改环境。函数可以执行计算以在输入它们的单元格中返回某个值或文本。任何环境更改都应通过使用 Visual Basic 子例程来完成。

计算过程中,Excel 会检查包含用户定义函数的单元格的引用单元格。如果未计算所有引用单元格,Excel 会向函数传递空单元格。然后,Excel 将确保针对要计算的所有引用单元格进行了足够的计算传递。在进行最后的计算传递过程中,会向用户定义函数传递单元格的当前值。这会导致比预期更频繁地调用用户定义函数。因此,用户定义函数可能返回意外值。要进行正确的计算,计算中使用的所有区域都应该作为自变量传递给函数。如果不以自变量形式传递计算区域,而是引用函数的 VBA 代码中的区域,Excel 将无法在计算引擎中考虑这些区域。因此,Excel 可能无法对工作簿进行适当地计算,来确保在计算用户定义函数之前计算所有引用单元格。

origin用户自定义拟合函数(优选.)

最新文件---------------- 仅供参考--------------------已改成-----------word文本 --------------------- 方便更改 赠人玫瑰,手留余香。 Origin 是一款科研和工程领域颇受欢迎的数据分析和绘图软件(A Date Analysis and Graphing Software)。 在数据分析功能中,它包涵了峰形分析、曲线拟合、统计、信号处理等功能。在曲 线拟合功能中,用户可以使用Origin自带的内置函数(Built-in Function),然而自带 函数不一定满足实际需要,用户还可以根据实际需求自定义拟合函数,并使之进行特 殊形态曲线的拟合,得到用户自己关心的曲线参数。 比如在介电材料的阻抗谱研究中,想知道Cole-Cole半圆与实部的两个交点,那么 就需要知道这个半圆的方程,从而解出想要的参数。 这里以半圆形曲线拟合为例简单介绍用户自定义拟合函数(User Defined Fitting Function)的建立和使用。 建立用户自定义函数的步骤: 1.选择 Tools: Fitting Function Organizer (快捷键F9) ,打开 Fitting function organizer. 单击 New Category 按钮,创建一个函数类,可以根据自己需要重命名,比如 My functions.然后单击 New Function,在这个类下面创建一个新的函数,然后命名,比如Semi-circle function:

2. 对该函数进行简短的描述,定义函数所需参数,输入函数方程。然后,进行最最关键的一步:函数编译!

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表格时就应将序号这一字段与其他字段分开,如在“总分”与“排名”之间空开一列,为了不影响显示美观,可将这一空的列字段设为隐藏,这样在调整表格(数据清单)的内容时就不会影响序号了。

Origin8.0用户自定义拟合函数的建立和使用

本帖包括两个话题:1. 自定义函数的建立 2. 自定义函数的调用。 为什么要建立自定义函数? 如果你没遇到这个问题,没想过这个问题,说明你origin还用得不够,你还只停留在数据绘图的层面上,数据分析功能还值得再拓展。 Origin 是一款科研和工程领域颇受欢迎的数据分析和绘图软件(A Date Analysis and Graphing Software)。 在数据分析功能中,它包涵了峰形分析、曲线拟合、统计、信号处理等功能。在曲线拟合功能中,用户可以使用Origin自带的内置函数(Built-in Function),然而自带函数不一定满足实际需要,用户还可以根据实际需求自定义拟合函数,并使之进行特殊形态曲线的拟合,得到用户自己关心的曲线参数。 比如在介电材料的阻抗谱研究中,想知道Cole-Cole半圆与实部的两个交点,那么就需要知道这个半圆的方程,从而解出相关参数。 这里以半圆形曲线拟合为例简单介绍用户自定义拟合函数(User Defined Fitting Function)的建立和使用。 一、建立用户自定义函数的步骤: 1.选择 Tools: Fitting Function Organizer (快捷键F9) ,打开 Fitting function organizer. 单击New Category 按钮,创建一个函数类,可以根据自己需要重命名,比如 My functions.然后单击 New Function,在这个类下面创建一个新的函数,然后命名,比如 Semi-circle function: 2. 对该函数进行简短的描述,定义函数所需参数,输入函数方程。然后,进行最最关键的一步:函数编译!

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

存储过程与用户自定义函数

实验报告 课程名称:数据库系统概论实验时间:2012.5.10 学号:姓名:班级: 一、实验题目:存储过程与用户自定义函数 二、实验目的: 1)掌握SQLServer中存储过程的使用方法。 2)掌握SQLServer中用户自定义函数的使用方法。 三、实验内容:(记录每个实验步骤内容、命令、截屏结果) (一)存储过程 1、对学生课程数据库,编写2个存储过程,分别完成下面功能: 1)统计某一门课的成绩分布情况,即按照各分数段统计人数,要求使用游标。 create proc TotalByCnoNum ( @cno varchar(6) ) as begin declare @num1 int,@num2 int, @num3 int,@num4 int,@num5 int,@grade int,@cname char(20) select @num1=0,@num2=0,@num3=0,@num4=0,@num5=0 declare cur_cno cursor for select grade from sc where cno=@cno open cur_cno fetch next from cur_cno into @grade while@@fetch_status=0 begin if @grade between 90 and 100 set @num1=@num1+1 else if @grade between 80 and 89 set @num2=@num2+1 else if @grade between 70 and 79 set @num3=@num3+1 else if @grade between 60 and 69 set @num4=@num4+1 else set @num5=@num5+1 fetch next from cur_cno into @grade end close cur_cno deallocate cur_cno select @cname=cname from course where cno=@cno print'课程:'+@cname print'分数段人数统计'

VSTO4.0创建EXCEL自定义函数

前段时间装了个visual studio 2010,试着用里面的VSTO4.0,但是对如何生成一个自定义函数始终搞不明白(之前也看了《VSTO开发指南》,但觉得里面所讲的东西太泛了,而且版本不一样,形式也改变了不少),终于在网上看到有人写出一个完整的过程(原文请看https://www.360docs.net/doc/5d7062137.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/5d7062137.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中自定义函数 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中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.函数作用:返回

函数与用户自定义函数.doc

函数 在Transact - SQL语言中,函数被用来执行一些特殊的运算以支持SQL Server的标准命令。 (1 )?行集函数:行集函数可以在transact?SQL语句中当作表引用。 (2).聚合函数:用于一组值执行计算并返回一个单一的值。 (3 ).标量函数:用于对传递给它的一个或者多个参数值进行处理和计算,并返回一个单一的值. (一)、标量函数的分类 1 ?配置函数:返回当前的配置信息 2 ?游标函数:返回有关游标的信息 3 ?日期和时间函数:用于对日期和时间类型的输入值进行操作,返回一个了子符串,数字或日期和时间值 4 ?数学函数:用于对作为函数参数提供的输入值执行操作,返冋一个数字值 5 ?元数据函数:返回有关数据库和对象和信息 6 ?字符串函数:对字符串输入值执行操作,并返回一个字中或数字值 7 ?系统函数:执行系统操作 8 ?系统统计函数:返回系统的统计信息 9 ?文本和图像函数:对于文本或图像输入值或列执行操作,返冋有关这些值的信息。 (二)、具体讲解: 1 ?系统函数 用于返回有关SQL Server系统,用户,数据库和数据库对彖的信息。系统函数可以让用户在得到信息后,使用条件语句,根据返回的信息进行不同的操作。与其它函数- 样,可以在select语句的select和where子句经及表达式中使用系统函数。 例:返回taihang数据库的yuan表中的第二列的名称。 use taihang select col_name ( object_id ( * yuan *),2) 注:col_name为系统函数,object_id :返回对彖的id。 2 ?日期和时间类型 日期和时间函数用于对日期和时间数据进行各种不同的处理和运算,并返回一个字符串,数字值或日期和时间值。 dateadd ( datepart , number ,date) dated iff ( datepart ,date1 ,date2) datename ( datepart ,date) datepart ( datepart ,date) day (date) getdate () month (date) year (date) 例1:从getdate函数返回的日期中提取月份数 select datepart ( month , getdate ()) as * month number * 注:datepart为系统函数 例2:从03/12/ 1998中返回月份、天数和年份数

Python自定义函数教学设计

Python语言程序设计——自定义函数 一、教材分析 本节课主要介绍了自定义函数的方法及使用。主要培养学生的数字化学习与创新能力。 二、教学目标: 1、培养学生的数字化学习与创新能力。 2、能理解为什么要代码复用 3、能准确将需要复用的代码定义成函数 三、重点与难点 【教学重点】自定义函数。 【教学难点】自定义函数。 四、教学方法 对于重难点的突破本课将利用实际案例,通过学生操作的方式在课堂中通过师生互动将知识进行内化。 五、教学教具 多媒体机房,多媒体课件,Python3.7。 六、教学过程

环 节 内容教师活动学生活动设计意图 新 课 导 入 生日快乐歌我们同学都会唱。 我们现在将歌词利用代码打 印出来。 利用代码打印生日快乐歌。从学生感兴 趣的事情出 发,利用视 频引出新课 并吸引学生 注意。 授 新 分析为什 么要进行 代码复用 请学生观察打印生日快乐歌 的代码的特点。其中有1、2、 4行是完全相同的,第三行是 在第一行的基础上增加了 dear+姓名。 观察代码让学生观看 代码对库的 调用以及库 函数的使用 有一个基本 的概念这时对于相同的代码行我们 可以将他们自定义成函数,在 需要他们的时候调用函数就 可以了。 但是这个代码仍然有改进的空 间,因为每个生日快乐歌只有名 字不一样,其他都相同,那么我 们每次只改名字可以吗? 还记得之前我们讲过的变量 的概念吗? 跟随老师一起敲代码 思考 直观的理解 语句的含义 函数的定义: 函数是一段代码的表示 - 函数是一段具有特定功能的、 可重用的语句组 - 函数是一种功能的抽象,一般 函数表达特定功能 - 两个作用:降低编程难度和 代码复用 聆听深入理解函 数的概念

第5章 使用VBA开发自定义函数

第5章 使用VBA开发自定义函数 在第1章中曾经提到过,可以在VBA中创建的两种过程——子过程和函数过程。在前面的例子中,我们创建和使用的都是子过程,它通常都可以完成某一种功能。而函数过程则是为了完成某种计算,并返回一个计算结果。在VBA中创建的函数过程不但可以在VB A中使用,而且还可以像其他 Excel内置工作表函数一样,在工作表的公式中使用。本章将重点介绍创建自定义函数并在工作表公式中使用的方法。 5.1了解函数过程中的参数 在Excel工作表公式中使用不同的函数时,通常都需要输入函数的参数,然后函数才能得出正确结果。当然,有极少一部分函数不需要参数,例如时间函数Now,在单元格中输入“=Now()”并按【Enter】键后,将得到当前的时间。 在VBA中编写自定义函数时,也要根据函数的功能为自定义函数设计不定数量的参数,以便在使用中用户可以给函数参数赋值而获得想要的结果。本节将介绍自定义函数参数的几种类型。 5.1.1不使用参数的函数 自定义函数可以不使用任何参数,这通常在需要通过自定义函数返回一个信息时使用。例如,下面的自定义函数返回当前工作簿的路径,它不需要使用任何参数:Function GetPath() GetPath = ActiveWorkbook.FullName End Function 当在单元格中输入“=GetPath()”并按【Enter】键后,将在单元格中显示当前工作簿的路径,如图5-1所示。当在单元格输入等号“=”后,可以通过Excel 2007的自动完成功能在列表中找到自定义函数。 图5-1 使用无参数函数返回工作簿路径

提示:与Excel内置的工作表函数一样,即使自定义函数不使用参数,但是在输入函数时也要包含一对圆括号。 5.1.2使用有—个参数的函数 有时可能需要通过给定一个数值来获得结果。例如,在使用Excel的工作表函数ABS 时,通过给定一个数字,返回它的绝对值。那么在自定义函数时,也可以为函数设置一个参数,在公式中使用自定义函数时,也要输入一个参数,才能得出正确结果。 例如,下面的自定义函数通过用户输入一个数字,来求得该数字的阶乘: Function CountF(Num) Dim i As Integer Dim Total As Long Total = 1 For i = 1 To Num Total = Total * i Next i CountF = Total End Function 在工作表中输入该函数时,要求输入一个参数,例如,输入“=CountF(5)”,按【Ente r】键后,将得到给定参数值的阶乘,如图5-2所示。 图5-2 使用一个参数的函数计算数字的阶乘 5.1.3使用多个参数的函数 如果需要参与计算的条件较多,一个参数不够用时,那么可以在自定义函数中设置多个参数。例如,可以创建一个自定义函数,根据给定的商品单价和销售数量,计算员工的销售提成金额。当销售额小于20000时,以销售额的6%作为提成金额;当销售额在20001到40000之间时,以销售额的8%作为提成金额;如果销售额大于40000,那么以销售额的10%作为提成金额。下面的自定义函数正是用来计算这种提成方法的: Function GetBonus(UPrice, Amount)

用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”

实验五、函数程序设计

实验五函数程序设计 一、实验目的 1.掌握函数的定义、函数的说明和调用。 2.掌握函数的参数及其传递方式,函数值的正确返回。 二、实验设备及分组 1.Windows XP操作系统; 2.Visual C++6.0语言环境; 3.每人一台PC机。 三、实验内容 1.[目的]掌握标准库函数的说明和调用方法。 [题目内容]编写一个程序,首先显示一个菜单,然后根据用户的选择,输入数据后,执行相应的操作。 [输入]用户选择和函数自变量值 [输出]如下菜单: =======MENU====== 1.。。。。。。。。。。。sin 2.。。。。。。。。。。。cos 3.。。。。。。。。。。。pow 4.。。。。。。。。。。。sqrt 0.。。。。。。。。。。。exit ================== [提示]使用标准库函数、多分支选择结构。 2.[目的]掌握用户自定义函数的定义、函数的说明和调用方法。 [题目内容]编写一个用户自定义函数,该函数有一个整型参数,函数的功能是:当这个整型数的值是偶数时,函数的返回值为0,当这个整型数的值是奇数时,返回值为1 。编写一个程序,从键盘输入任意10个整数,分别调用用户自定义函数来判断这10个整数的奇偶性。 [输入]任意10个整数 [输出]这10个整数的奇偶性 [提示]在主函数中使用循环结构输入10个整数。根据子函数的返回值输出相应的判断结果信息。 3.[目的]掌握用户自定义函数的定义、函数的说明和调用方法。 [题目内容]编写一个用户自定义函数,该函数有三个整数参数,函数的功能是:求解这三个整数的最大值,函数的返回值为三个参数的最大值。编写一个程序,从键盘输入任意5个整数,分别两次调用用户自定义函数来求出这5个整数中的最大值。 [输入]任意5个整数 [输出]这5个整数的最大值 [提示]先用前三个整数调用函数,求出的最大值作为参数之一,再与另两个整数一起求出最大值即为所求。 4.[目的]掌握用户自定义函数的定义、函数的说明和调用方法。

用户自定义函数

用户自定义函数 函数是过程的另一种形式,又称为Function过程。它与过程不同的是,函数必须有返回值,向调用程序返回结果。 定义Function过程,语句格式如下: Function 函数名[(参数列表)][As 类型] …… Return value / 函数名=value End Function Function过程的调用比较简单,可以像使用https://www.360docs.net/doc/5d7062137.html,内部函数一样来调用Function过程,即将其名称和参数放在赋值语句的右边或表达式中。 例:定义并调用Function过程,求1~10的和 参数---形参和实参 在定义Sub和Function的过程中,“参数列表”中的参数称为“形式参数”,简称“形参”。形参用于接收数据,因此形参不能是常数。 在调用语句中使用的参数称为“实际参数”,简称“实参”。 实参可以是变量元素(已知变量、数组元素等)和非变量元素(常数、文本、枚举、表达式),在调用一个过程时,必须把实参传递给过程,完成实参和形参的结合。一般情况下实参按位置传给形参。

参数传递 在调用过程中,一般主过程与被调用过程之间有数据传递,即将主过程的实参传递给被调用过程中的形参,完成实参与形参的结合。 在参数传递过程中有两种方式,一种为值传递,使用ByVal关键字;另一种为按地址传递也称为引用,使用ByRef关键字。 在https://www.360docs.net/doc/5d7062137.html,中默认的参数传递机制是值传递。 按值传递 按值传递时,系统将实参复制给形参,然后实参与形参就断开了联系,形参只是接收到实参传递过来的值,实参和形参在各自独立的存储单元中,在调用过程中对形参的任何操作不会影响到实参,因此值传递可以保护实参中的数据不被过程所改变

excel自定义函数编写方法

Excel自定义函数基础教程 1.总述、编写环境与设置 自定义函数功能是Excel中一个强大的扩展功能,它可以实现不同用户的特定计算要求。以使得Excel计算自主化、专业化,可以大大简化人工劳动(查表、专业公式计算、统计等)。所以编写与使用自定义函数应是每个工程计算人员必不可少的技能。本教程为零基础教程,特为呼和浩特职业技术学院编写,如需引用或咨询请联系526949738@https://www.360docs.net/doc/5d7062137.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:执行语句;[]中的内容为可选内容。

相关文档
最新文档