精华内容
下载资源
问答
  • 有一个函数定义为 ``` Private Function CountOrder(ByRef SampleNo As Short) As Short ``` 执行如下语句: (其中一段) ``` If (SampleNo >= 90 Or SampleNo ) Then CountOrder = 90 Exit Function ...
  • vb.net Function使用

    2018-07-10 13:36:00
    Public Function colour(ByVal Code As Int16) As Color'顏色 Select Case Code Case 1 colour = Color.White'白色 Case 2 colour = Color.Yellow'黃色 ...

    Public Function colour(ByVal Code As Int16) As Color'顏色
    Select Case Code
    Case 1
    colour = Color.White'白色
    Case 2
    colour = Color.Yellow'黃色
    Case 3
    colour = Color.Red'紅色
    Case 4
    colour = Color.Silver'灰色
    End Select
    End Function

     

    Private Sub A1()

    TextBox1.BackColor = colour(1)'l背景色白

    TextBox1.BackColor = colour(2)'l背景色黃

    TextBox1.BackColor = colour(3)'l背景色紅

    TextBox1.BackColor = colour(4)'l背景色灰

    End Sub

     

    转载于:https://www.cnblogs.com/leme-chen/p/9288564.html

    展开全文
  • 秋2014.02.19采纳率:54%等级:11已帮助:3999人虽然VB提供了常用的标准函数P71,可以使用这些标准函数来实现某些数学计算或数据类型的转换,但许多应用程序常常需要自己来定义函数,以实现某种特定的计算。...

    满意答案

    02ae427d08e371d7e90d5b995e828d6d.png

    Taina.秋

    2014.02.19

    02ae427d08e371d7e90d5b995e828d6d.png

    采纳率:54%    等级:11

    已帮助:3999人

    虽然VB提供了常用的标准函数P71,可以使用这些标准函数来实现某些数学计算或数据类型的转换,但许多应用程序常常需要自己来定义函数,以实现某种特定的计算。

    可以按下面的方式自己来构造(规定)一个函数:

    Function 函数名(参数表) As 数据类型名

    语句块

    EndFunction

    这里,函数名是程序设计者为函数指定的名称。参数表是对于函数需要的原始数据的类型一一地进行说明。As后的类型名,是说明函数的计算结果,即函数返回值的数据类型,函数计算完成后,VB自动地把函数返回值送到函数的调用点上,这样,程序的其他部分能对这个结果作进一步的处理,最终完成计算任务。

    例20设计一个函数Leap,判断y年是否是闰年,若是,就返回1,否则,就返回0。

    我们先构造一个函数Leap(Y):‘判断y年是否是闰年方法见课本P74的《问题和练习》第3题;

    Function Leap(y AS Integer) As Integer

    If y mod 100=0 Then ‘mod是求余数运算符,例:8 mod 5=3,见课本P72表4.2.1

    If y mod 400=0 ThenLeap=1 Else Leap=O

    Else

    If y mod 4=0 Then Leap=1 Else Leap=0

    EndIf

    End Function

    End Function之前的语句块,描述了函数的计算过程,在这些语句中,至少要有一个形如

    函数名=表达式 ‘例如:上函数模块中的Leap=1、Leap=0

    的语句,这样,表达式的计算结果才能作为函数的返回值,被VB送到函数的调用点上。

    把“判断y年是否是闰年”这样一个计算过程从整个应用程序中分离出来,成为一个独立的模块(模块可以是一个函数,也可以是一个过程),这是一种模块化的程序设计方法。使用这种方法的好处是:

    (1)在设计(构造)这个模块时,需要处理的计算任务比起整个应用程序来相对地要简单些,例如,在这里需要设计的计算过程仅仅是按一定的规则判断y年是否是闰年,并按规定返回O或1这两个结果之一,而不需要考虑数据y是怎么获得的,y年是闰年要进行怎样的处理,y年不是闰年又要进行怎样的处理等问题,这些是应用程序其他部分的任务。

    (2)构造了一个程序模块后,在程序的各个部分中可以使用这个模块。

    例如:下面我们要要编制一个完整的程序,输入一个年份y(设y>=1900),输出该年2月份的天数:

    分析如下:

    28 ‘y不是闰年;

    2月份的天数:D2=

    29 ‘y是闰年;

    可先设D2=28 ,则:

    IF y是闰年 then D2=D2+1

    0 ‘y不是闰年;

    可自定义一个函数:Leap(y)=

    1 ‘y是闰年;

    则:D2=D2+ Leap(2012) ‘上面我们已经构造一个函数Leap(Y)

    因此,输出该年2月份的天数的子程序如下:

    Sub Command1_Click()

    Dim y AsInteger

    Dim n AsString

    n = InputBox("请输入年份:")

    y = Val(n)

    d2 = 28

    d2 = d2 + Leap(y) '调用函数Leap(y),并把的返回值1或0,被VB送到函数的调用点

    Text1.Text = d2

    End Sub

    00分享举报

    展开全文
  • VBfunction的应用

    千次阅读 2014-05-05 12:01:38
    函数过程的调用: 1, call 语句。 Call (过程名) [实参表] 2, 直接调用。(过程名) [ 实参表] 3, 无参数直接调用。 举例  Function f2  F2=”Flollow me.”  End Function 关于vb function ...


     

    函数过程的调用: 1, call 语句。 Call (过程名) [实参表] 2, 直接调用。(过程名) [ 实参表] 3, 无参数直接调用。 举例
       Function f2
        F2=”Flollow me.”
        End Function

    关于vb function

    (1)有谁能清楚地介绍vb function过程,说明它是如何返回值的?
    (2)下面这段代码表示什么意义:
    Dim y As Integer
    Private Sub Command1_Click()
    Dim x As Integer
    x=2
    Text1.Text=f2(f1(x),y)
    Text2.Text=f1(x)
    End Sub

    Private Function f1(x As Integer)As Integer
    x=x+y:y=y+x
    f1=x+y
    End Function

    Private Function f2(x As Integer,y As Integer)As Integer
    f2=2*x+y
    End Function

    以下为小的详细写的一个分析过程,我会一句一句的来分析.我觉得流程图没什么用,反正我是看不懂流程图的.
    Dim Y As Integer
    分析1 这一句定义了一个全局的整形变量y,对于这个y的理解是整个成绩的关键.因为Y是全局变量,因此Y的值会保留,直到程序结束.又因为没有给Y赋值,所以系统会自动给Y赋0值.此时Y的值为0

    Private Sub Command1_Click() '敕令按钮1的单击事宜
    Dim x As Integer
    这一句定义了一个过程级变量X.过程级变量指的是,该变量的生存期只在过程内,即在Command1_Click()过程内有效.若X在其他过程内出现,那么系统也会给X赋0值.
    分析2 x=2 给X赋值.此时X的值为2

    Text1.Text= f2(f1(x),y)
    接下来也就到了程序的难点了.我相信你要的也是这一句的分析过程,当然,我也会详细的分析.
    首先来简单说一下.这一句中,程序首先调用函数f1,得出f1的值,再调用函数f2,得出f2的值,最初再将f2的值在文本框内显示.
    当程序执行到此处时,程序会首先调用函数f1,执行f1内的语句.也就是说,程序执行到此处时,会首先执行Private Function f1(x As Integer)As Integer 内的语句.
    因此,这里跳到此语句分析.

    Private Function f1(x As Integer)As Integer
    这一句的意思是,函数f2返回一个整形变量,调用此函数时,必须提供一个参数X,该参数按址传递.当程序执行到此处时,程序会自动将调用者f1(参数)中的参数部份赋于X.

    分析3 x=x+y
    这一句的意思是,将X的值与Y的值相加,再赋于X.因为X=2,Y=0,所以X=2+0=2,即X=2.(关于为什么X=2,请参看分析2.为什么Y=0,请参看分析1),此时X=2.

    分析4
    y=y+x
    这一句的意思就是,将Y的值与X念加,再赋于Y.因为X=2(为什么X=2?拜见分析3),Y=0(为什么Y=0?拜见分析1),所以Y=Y+X=0+2=2,此时Y的值为2,即Y=2.

    分析5
    f1=x+y
    将X+Y的结果赋于f1.因为x=2(参看分析3),Y=2(参看分析4),所以f1=X+Y=2+4=4,也即f1=4.

    当程序执行到这里后,由于已经得出f1的值,程序跳会Text1.Text=f2(f1(x),y)这一句执行.因为f1=4(为什么f1=4?参看分析5),所以此时代码可简化为:

    Text1.Text=f2(4,y)

    这一句的意思是,调用函数f2,再将f2的值赋于文本框,当中调用者提供了两个参数,即4和Y.

    分析6
    此时程序会跳到Private Function f2(x As Integer,y As Integer)As Integer 函数过程内执行.这个函数过程的意思是,将第一个参数赋于X,将第二个参数赋于Y.因为f2(4,y)第一个参数为4,因此X=4,第二个参数为Y,因此Y=Y.

    分析7
    f2=2*x+y
    此为数学运算,意思再明显不过.计算2*X+Y的值,再将结果赋于f2,因此f2=2*x+y=2*4+2=8+2=10(为什么X等于4?参看分析6)(为什么Y等于2?参看分析4),所以f2=10.

    计算出f2的值以后,回到Text1.Text=f2(4,y)内执行.因为f2=10(为什么等于10?拜见分析7),即Text1.Text=10,所以文本框控件显示的是10.

    请您自己分析Text2.Text=f1(x)这一句的程序执行结果.当中的要点我都已经举行了详细的解说,精确到点.如果您仍然不分明,那就应该好好的看一下书了.

                    vb Function 参数如何定义

    【教学目的与要求】

    系统提供的内部函数过程和事宜过程,在运用程序的编写中,有时成绩比较复杂,按照结构化程序设计的原则,可把成绩逐步细化,分成若干个功能模块,通过VB提供的自定义过程将功能模块定义成一个过程,供事宜过程多次调用。使用过程的好处是合程序简练、便于调试和维护。

    在VB中自定义过程分为以下几种:以“SUB”保留字最先的为子过程;以“FUNCTION”保留字最先的为函数过程;以“Property”保留字最先的为属性过程;以“Event”保留字最先的为事宜过程。本章要求学生掌握用户自定义的子过程和函数过程。

    【教学内容与要点】

    n            子过程的定义与调用

    n            函数过程的定义和调用

    n            参数传递

    n            递归

    n            变量的作用范围



    【教学方法与手段】

    n                   多媒体教学:借助多媒体手段,举行课堂理论教学;

    n                   启发式教学:教学活动存眷的重点从结果转向过程。激发脑子,师生互动,增强学生学习的主动性、积极性和创造性;

    n                   民主教学:以学生为主体,以学习为中心,强化学生的学习主人翁熟悉。鼓励争辩,课堂氛围宽松和谐;

    n                   开放式教学:课上课下融合,校内校外联合。培养学生发散脑子,增年夜学生的学习自主权;

    n                   研究式教学:灌输式改变为研讨式、探索式。教师给思路,指点学生自主获取知识;

    n                   实践性教学:充分利用实验室,通过上机实习,加强学生的实践能力。

    【教学重点与难点】:过程的定义和调用;参数传递

    计划课时】:2课时

    教学质量评价

    n                   课堂提问及回答成绩情况

    n                   课外作业及质量完成情况

    n                   实验报告及质量完成情况

    教学组织过程

    在设计一个规模较年夜、复杂程度较高的程序时,往往根据需要按功能将程序分解成若干个相对自力的部份,然后对每个部份分袂编写一段程序。这些程序段块称为程序的逻辑部件。用这些逻辑部件可以机关一个完整的程序。这样极年夜地简化了程序设计任务。Visual Basic通常把这种逻辑部件称为过程。

    在VB中有3种过程:SUB(子)过程、FUNCTION(函数)过程和PROPERTY(属性)过程。属性过程用来返回和设置属性的值,也可以设置对象的引用,比较复杂,本章主要介绍SUB(子)过程和FUNCTION(函数)过程。

    一、子过程的定义与调用

    1、子过程的种类

    (1)在VB中,有两类子(SUB)过程:事宜过程和通用过程

    l                   事宜过程

               事宜过程是在响应事宜时执行的代码块。事宜过程一般由VB创建,用户不能增加或删除。缺省时事宜过程是私有的。事宜过程是附加在窗体和控件上的。其控件事宜的语法为:

           Private Sub <控件名>_<事宜名>([形参表])

           [(语句组)]

           End SUB

    l            通用过程

    通用过程是指必须由其他过程显示调用的代码块。通用过程由用户自己创建。在一个过程中,通用过程可以被其他过程调用,这样会提高代码的利用率。通用过程又分为子过程和函数过程。

    (2)定义通用过程

    通用过程通常完成指定的任务,通用过程不与任何特定的事宜相联系,只能由别的过程来调用,它可以存储在窗体或标准模块中。

    子过程的形式以下:

    [ Static][Public | Private ] Sub 过程名([形参表])

    局部变量或常数定义

    语句块

    [Exit Sub]

    语句块

    End Sub

    说明:可以将子过程放入标准模块、类模块和窗体模块中。按缺省规定,所有模块中的子过程为PUBLIC(公用的),这意味在运用程序中可随处调用它们;如果选用PRIVATE,只有该过程所在模块中的程序才能调用该过程。

    如果使用STATIC(静态)关键字,则该过程中的所有局部变量的存储空间只分配一次,且这此致变量的值在整个程序运行期间都存在,即在每次调用该过程时,各局部变量的值一直存在;如果省略STATIC,过程每次被调用时重新为其变量分配存储空间,当该过程结束时释放变量的存储空间。

    形参表类似于变量声明,它声明了从调用过程传递进来的值。指明了传送过程的变量个数和类型,各变量之间用逗号分隔。形式参数被缺省为具有Variant数据类型。

    建立通用过程的目的之一就是减少重复代码,将公共语句放入离开的过程(通用过程)并由事宜过程来调用它。

    (3)创建新的通用过程

    两种方法:

    l            使用“添加过程”对话框

    l            在“代码编辑器”窗口中输入

    查看过程

    l            查看当前模块中的过程

    l        &nbs爱情公寓4p;   查看其他模块中的过程

    (4)调用过程

    形式:(1)CALL 子过程名[(实参列表)]

    (2)子过程名[实参列表]

    举例:

    (1)在一个窗口中包含3个敕令按纽,当用户单击其中一个时,要求其他个别按纽不能使用,并且窗口中按纽是相同的,其处理方法一致,用一个过程来实现。

    (2)利用子程序的设计方法,先分袂计算5!+6!+8!值的程序。

    二、函数过程的定义和调用

    函数是过程的另一种形式,当子过程的执行返回一个值时,把它作为函数就比较简单。VB包含了很多内置的或内部的函数,用户在编写程序时,只需要写出一个函数名并给定参数就能得出函数值。当程序中需要多次用到某一公式或要调用它们,这样的函数称为用户定义函数。用户定义函数与内部函数一样,可以在程序中或函数嵌中使用。

    函数过程的定义

    (1)利用“工具”菜单下的“添加过程”敕令定义

    (2)利用代码窗口直接定义

    自定义函数过程的形式以下:

    [ Static][Public | Private ] Function 函数过程名([参数列表])[AS 类型]

    局部变量或常数定义

    语句块

    函数名=返回值

    [Exit Function]

    语句块

    函数名=返回值

    End Function

    函数过程的调用

    形式:函数过程名([参数列表])

    说明:在VB中调用FUNCTION过程的方法和调用任何内部函数的方法是一样的。还可以像调用SUB过程那样调用函数过程。

    例:已知直角三角形两直角边的值,计算第三边(斜边)的函数。

    Function nuse(a as interger, b as interger ) as single

         Nuse=sqr(a^2+b^2)

    End Function

    在VB中调用FUNCTION过程的方法:strx=nuse(width, Height)

    也可以用下面的语句调用了同一个函数过程:call nuse(3,6)     或     nuse 3,6

    举例:

    (1)设计计算圆面积的用户定义函数。

    (2)已知长和宽,计算矩形面积的函数。

    (3)设计求任意整数N的阶乘的函数,然后求3到10的阶乘之和。

    注:函数与过程的区别

    函数以FUNCTION开头,而过程以SUB开头

    当过程有一个返回值时,可以使用函数。当过程有多个返回值时,就当用过程。

    函数是通过函数名回送一个结果值。在函数的形式参数表后面要说明函数(即结果)的类型。而过程的结果由参数送回。

    函数体中至少要包罗一个给函数赋值的语句。而过程不能给过程名赋值。

    函数的调用出而今表达式中。而过程的调用必须作为一个单独的语句。

    形参没有具体的值,只代表了参数的个数、位置、类型;只能上简单变量,不能是常量、数组元素、表达式。

    三、参数传递

    在调用一个有参数的过程,首先举行的是“形实联合”,即按传值传递或按地址传递方式,实现调用程序和被调用的过程之间的数据传递。通过参数传递,Sub过程或Function过程就能根据不同的变量执行同种任务。为了叙述方便,将形式参数简称为形参,实在参数简称为实参。

    在Visual Basic中传递参数有两种方式,即按值传递(Passed by Value)和按地址传递(Passed by refecence)。按值传递参数时,传递的只是实参变量的副本。如果在被调过程中改变了形参值,只影响副本,而不会影响实参变量本身。即当掌握返回调用程序时,实参变量保持调用前的值不变。在定义过程时,若形参名前面没有关键字“ByVal”,即形参名前面缺省修饰词,或有“ByRef”关键字时,则指定了它是一个按地址传递的参数。按地址传递参数时,把实参变量(简单变量、数组元素、数组以记载等)的地址传送给被调过程。因此实参变量的地址和与之联合的形参地址是相同的,也就是说形参和实参共用内存的同一“地址”,即共享同一个存储单元。这样在被调过程中的形式参数值一旦被改变,相应的实参值也跟随着被改变了。

    l            形式参数与实际参数

    形式参数是指在定义通用过程时,出而今SUB或FUNCTION语句中的变量,是接收传送子过程的变量。形式参数表的各个变量之间用逗号分隔。实际参数是指在调用SUB或FUNCTION过程时,传送给SUB或FUNCTION过程的常量、变量或表达式。实参表可由常量、表达式、有效的变量名、数组名组成,实参表中各参数用逗号分隔。

    l            按值传递和按地址传递

    传递参数的方式有两种:如果CALL语句中的实际参数是常量或表达式,或者定义过程时选用ByVall关键字,就可以按值传递。如果CALL语句中的实际参数为变量,或者定义过程时选用ByRef关键字,就可以按地址传递。可则缺省按地址传递参数。

    (1)按值传递参数

    按地址传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变量只影响副本而不会影响变量本身。当要求变量按值传送时,可以先把变量变成一个表达式,把变量转换成表达式的最简单的方法就是把它放在括号内。或者定义过程时用ByVal关键字指出参数是按值来传递的。例如:Sub Post (ByVal     num     as     Integer )

    例:运行下面给出的程序,理解按值传递参数。

    Private Sub Form_Click( )

         Dim a as intger, b as integer, c as integer

         A=5: b=3 : c=9

    Cls

    Print a; b; c

    Call prod( (a), (b), (c) )

    Print a; b; c

    End     Sub

    Sub prod (a as intger, b as integer, c as integer )

         Print a; b; c

    a=6 : b=8 : c=a*b

         print a; b; c

    (2)按地址传递参数

    按地址传参数,就是让过程根据变量的内存地址往接见实际变量的内容,即形式参数与实际参数使用相同的内存地址单元, 这样通过子过程就可以改变变量本身的值。系统缺省按地址传递参数。在传递调用时,实际参数必须是变量,常量或表达式无法传址。

    例:运行下面给出的程序,理解按地址传递参数。

    Private Sub Form_Click( )

         Dim a as intger, b as integer, c as integer

         A=5: b=3 : c=9

    Cls

    Print a; b; c

    Call prod( a, b, c )

    Print a; b; c

    End Sub

    Sub prod (x as intger, y as integer, z as integer )

         Print x; y; z

    x=6 : y=8 : z=x*y

         print x; y; z

    举例:

    Private Sub Form_Click( )

         Dim x as intger, y as integer

         X=8 : y=3

         Call test(5, x, y+1)                  ‘5传值,X传址, Y+1传值

    Print “主程序”,5, x, y

    End Sub

    Sub test (a as intger, b as integer, c as integer )

         Print “子程序”, a, b, c

         A=2: b=4: c=9

    End Sub

    四、过程的嵌套和递归调用

    1、过程的嵌套

    2、过程的递归调用

    递归调用是指一个过程直接或间接调用自己本身,即自己调用自己。VB的过程具有递归调用功能,递归调用在处理阶乘运算、级数运算、幂指数运算等方面出格有效。

    递归是一种十分有用的程序设计手艺。由于很多的数学模型和算法设计方法本来就递归的。用递归过程描述它们比用非递归方法简洁易读,可理解性好,算法的准确性证明也比较容易,因此读者应掌握递归程序设方法。递归过程是在过程定义中调用(或间接调用)本过程的过程。在递归调用中,一个过程执行的某一步要用到它自身的前面一步或前若干步的结果。

    举例:

    (1)利用递归调用,计算N!

    <DIV>
    1                                                N=0

    N*(N-1)!       N>0
    </DIV>



    fact=

         Static Funtion Fact (n) as Double

    If n>0 then

         Fact=n*fact (n-1)

    Else

         Fact=1

    End if

    End Function

    (2)编写程序打印菲波拉契(Fibonacci)数列

    <DIV>
    1                                                                                          n=1

    1                                                                                          n=2

    fibo(n-1)+fibo(n-2)             n>2
    </DIV>



    fibo=

    Private Funtion fibo (n) as Double

    If n=1 or n=2 then

         Fibo=1

    Else

         Fibo=fibo(n-1)+fibo(n-2)

    End if

    End Function

    五、变量的作用范围

    不同作用域的3种变量定义方式如表1所示:
    <DIV align=center>

    作用域

    局部变量

    模块级变量

    全局变量

    定义方式

    Dim,Static

    Dim,Private

    Public

    变量的定义位置

    过程之中

    模块的声明段中

    模块的声明段中

    能可被本模块中其它过程接见

    ×





    能可被其它模块接见

    ×

    ×


    </DIV>
    变量的作用范围不同时,变量的名字可以相同。变量的作用范围还可以出现交叉。一般来说,当变量名称相同而作用域不同时,局限性年夜的变量总会用“阴影”遮住局限性不太年夜的变量(即优先接见局限性年夜的变量)。例如,程序中有一个模块级变量Temp,还有一个名为Temp的过程级变量,则它的“阴影”会遮住模块级变量Temp。

    在一个过程内部用Dim语句定义的变量是局部变量,只有在定义它们的过程中才能接见或改变变量的值,这样的变量成为局部变量;为了使某个变量在整个模块的所有过程中都能使用,在模块的(通用)和(声明)部份使用Private或Dim语句定义的变量就是模块级变量,在该模块中任何过程都可以对模块级变量举行读、写操作;在模块的(通用)和(声明)部份使用Public语句定义的变量就是全局变量,在运用程序的任何部份都可以对全局变量举行读、写操作。

    使用Dim在过程中定义的变量,在过程结束后变量的值不能被保存下来。在每一次过程重新执行时,变量的内容将被清除。如果希望在离开该过程后,还能保存过程中局部变量的值,就应该使用Static关键字在过程中定义局部变量,即使过程结束,变量的值仍然保留着。

    Visual Basic程序的窗体模块、标准模块和类模块可以定义变量,在过程和函数中也可以定义变量。在不同部份定义的变量在程序中的实用范围是不同的。Visual Basic中的变量可以分为局部变量(过程级变量)、模块级变量和全局变量。

    过程级变量

    在一个过程内部声明变量时,只有该过程内部的代码才能接见或改变该变量的值。过程级变量的作用范围限制在该过程。在过程内部使用DIM或STATIC关键字声明变量。

    如果在过程中未作说明而直接使用某个变量,该变量也被当成过程级变量。用STATIC说明的变量在运用程序的整个运行过程中都一直存在,而用DIM说明的变量只在过程执行时存在,退出过程后,这类变量就会消失。过程变量通常用于保存临时数据。

    1、过程级变量

    在模块有声明中声明的变量属于模块级变量。模块级变量分为两种:私有和公有。

    (1)私有的模块变量

    私有的模块级变量在说明它的整个模块中的所有过程中都能使用,但其他模块却不能接见该变量。说明方法是在模块的声明中使用PRIVATE或DIM关键字声明变量。

    (2)公有的模块级变量

    公有的模块级变量在所有模块中的所有过程中都能使用。它的作用范围是整个运用程序,因此公有模块级变量属于全局变量。说明方法是在模块的声明中使用PUBLIC关键字声明。

    全程变量是指在所有程序(包罗主程序和过程)中都可以使用的内存变量。全程变量就像在一个过程中定义的变量一样,在子过程中可以任意改变和调用,当某子过程执行完后,其值带回主程序。

    2、变量的生存期

    (1)动态变量

    动态变量是指程序运行后进入变量所在的子程序,才分配该变量的内存单元,经过处理退出该过程,该变量占用的内存单元自动释放,其值消失,其内存能被其他变量占用。

           使用DIM关键字在过程中声明的局部变量,在过程执行结束后变量的值不被保留,在每一次重新执行过程时,变量重新声明。用DIM声明的变量属于动态变量。

    (2)静态变量

    静态变量是指程序运行进入该变量所在的子程序,修改变量的值后,退出该子程序,其值仍被保留,即变量所占内存单元没有释放。当以后再次进入该子程序,原来变量的值可以继续使用。

    使用STATIC关键字在过程中声明的局部变量,就属于静态变量。静态变量在过程退出后仍然可以保持原来的值。

    Function 过程是由用户定义的自力的函数过程,与Sub字程序类似。Function 函数过程可读取参数,修改语句。可作为自力的基本语句调用,也可以在程序或是函数中嵌套使用。它有返回值。Vb 中有很多内置的函数,如sin, cos, abs 等。如果过程需要多次用到某一公式或函数时,VB中有没有可用的参数,此时,Function过程就派上用场了。 Function 过程的语法为:

      [private | public ] [static] Function (函数名)([形参表])  [as(类型)]
      [语句列] [(函数名)= (表达式)]
      Exit gunction
      [语句列] [(函数名)=(表达式)]
      End function

    说明: 中括号内的可省略, Function 函数程序跟Sub 字程序过程类似。只是as (类型)表示Function的返回值是as 指向的类型。还有一种可以创建Function 过程, 在工具 添加过程, 在添加过程中的对话框中,名称由用户自定义,可以是字母、数字、下划线等。 在类型中选择函数选项,点击确定。OK! Function 函数过程创建完毕。

        在VB中function 程序如何运用?


    展开全文
  • Function ss(s) Dim a As String, b As Long, c As Long, d As Long, e As Long, f As Integer, res As Double a = CStr(s) b = InStr(1, a, “.”) f = 65 If b > 0 Then e = Mid(a, b + 1) d = Mid(a, 1, b) ...

    Function ss(s)
    Dim a As String, b As Long, c As Long, d As Long, e As Long, f As Integer, res As Double
    a = CStr(s)
    b = InStr(1, a, “.”)
    f = 65
    If b > 0 Then
    e = Mid(a, b + 1)
    d = Mid(a, 1, b)

    res = (d * 20 + e) * f
    

    Else
    d = a
    res = (d * 20) * f

    End If

    ss = res / 100
    End Function

    展开全文
  • VB基本函数大全

    2021-07-28 09:33:22
    Abs 函数:返回数的绝对值。And 运算符:执行两个表达式的逻辑连接。...调用语句将控制移交 Sub 或 Function 过程。CBool 函数:返回已被转换为 Boolean 子类型的变体的表达式。CByte 函数:返回已被转换为字节子...
  • Function过程也称为函数过程。编写一个Function过程,就是编写了一个函数函数可以完成很多复杂的计算,如想求A列的和,可以使用SUM函数Function过程同Sub过程一样,也是保存在模块里。 一、自定义函数的声明 ...
  • 细谈VB中的function程序应用问题!

    万次阅读 热门讨论 2012-06-06 21:14:05
     Function 过程是由用户定义的独立的函数过程,与Sub字程序类似。Function 函数过程可读取参数,修改语句。可作为独立的基本语句调用,也可以在程序或是函数中嵌套使用。它有返回值。Vb 中有许多内置的函数,如sin,...
  • 我在网上抄的一个函数,是这样写的: Public Function number1ToCharacter(number As String) As String 但是我运行的时候为什么会报错?请高手帮忙分析下,谢谢。 显示如下: ![图片说明]...
  • VB 调用API函数设计关于窗体,看第一眼,我还以为是调用Windows系统的关于窗口,仔细看,定义了自己的信息,这个例子可看作是VB使用API函数的例子,了解一些用法,关于本例子中的API用法,可看以下代码:  API函数...
  • 【EXECL]】VB定义记录如何在execl里通过vb加入一个宏定义,此宏定义可以关联到我们自定义的vb function,这样就可以实现vb对execl 表格的控制。 环境:execl 2010 添加宏定义 操作步骤 【开发工具】->【Visual...
  • VB常用函数(很全)

    2020-12-20 14:31:12
    VB常用函数(很全)》由会员分享,可在线阅读,更多相关《VB常用函数(很全)(7页珍藏版)》请在人人文库网上搜索。1、VB常用函数Time返回系统时钟的当前时间。Date返回系统时钟的当前日期。Now返回代表当前日期和时间...
  • 1. Sub 过程定义时无需定义返回值类型,而Function 过程一般需要用“As 数据类型” 定义函数返回值类型。 2. Sub 过程中没有对过程名赋值的语句,而Function 过程中一定有对函数名赋值的语句。 3. 调用过程:调用...
  • VB中Sub过程与Function过程的区别

    千次阅读 2020-01-14 13:39:58
    VB的通用过程分为两种类型:Sub过程和Function过程。通用过程既可以保存在窗体模块(.Frm)中,也可以保存在标准模块(.Bas)中。通用过程与事件过程不同,它不依附于某一对象,也不是有对象的某一事件驱动或由系统...
  • 说起来这个问题我就很心塞,感觉这是小学生都可以做出来并且理解的算法,大一学习C的时候就遇见了这个问题,奈何肯定当时没有理解透彻呀,导致现在学习VB重新遇到瓶颈。通过学习C语言,Python以及现在的VB发现,只要...
  • 对Sub过程和Function函数添加注释的好处在于对Sub过程和Function函数进行引用时会有相关提示,提示内容就是你所做的注释,如下图所示,这种提示的好处相信你能明白。 三、窗体、模块、类头文件注释 尔等菜鸟一直...
  • VB调用API函数

    万次阅读 多人点赞 2016-01-13 20:17:36
    API函数快速入门--怎样在VB中声明和使用API函数--     一、在VB中声明API函数有两种方法:如果我们只在某个窗体中使用API函数,我们可以在窗体代码的 General部分声明它:    声明的语法是:  Private ...
  • 注释:网络上没有一个比较系统的VB6或者VBA的教程,于是打算利用中午休息的时间写一写这方面的教程,不喜欢写得很文绉绉,一切都以常用为前提进行介绍。因为要覆盖更多读者,所以本系列文章有些地方可能会介绍比较地...
  • 《《VB程序设计基础》第4章 函数与过程》由会员分享,可在线阅读,更多相关《《VB程序设计基础》第4章 函数与过程(16页珍藏版)》请在人人文库网上搜索。1、第4章函数和进程,编写4.1过程和传递调用4.2参数4.3多模块...
  • VB Socket通信函数

    千次阅读 2019-04-12 17:47:27
    对网络知识有所遗忘的话,可以先简单补习一下“套接字”概念,再来看这些函数就会觉得他们的用途很好理解,如果想更详细的学习,可以参看Socket通信原理。 关于各函数返回值,可以参看socket函数返回值分析。 一,...
  • VB几种函数参数传递方法,Variant,数组,Optional,ParamArray一) 过程的参数被缺省为具有 Variant 数据类型。1)ByRef按 地址传递参数在 VB 中是缺省的按地址传递参数后,过程返回的也是地址,函数中改变了的变量值...
  • VB字符串处理函数一览

    万次阅读 2017-10-10 11:49:20
    VB字符串处理函数一览 mid(字符串,从第几个开始,长度) ByRef 在[字符串]中[从第几个开始]取出[长度个字符串]  例如 mid("小欣无敌",1,3) 则返回 "小欣无"  instr(从第几个开始,字符串1,...
  • vb.net函数

    千次阅读 2018-03-15 17:05:11
    Shell 函数 运行一个可执行程序,并且如果该程序仍然在运行,则返回一个包含该程序的进程 ID 的整数。Abs 函数 返回数的绝对值。And 运算符 执行两个表达式的逻辑连接。...调用语句 将控制移交 Sub 或 Function 过程...
  • vb.net的过程和函数

    千次阅读 2011-12-05 11:11:29
    1.vb.net的Sub过程 Sub过程是在响应事件时执行的代码块。将模块中的代码分成Sub过程后,在应用程序中查找和修改代码变得更容易了。Sub过程的语法是: {Private|Public|Friend} Sub subname([arguments list])  ...
  • 日期:2021年09月02日 作者:Commas 注释:VB6数组的方法比较少,需要从源数组切片出一个新的数组,实现了类似JS...Public Function Slice(ByRef arySrc As Variant, ByVal lngStart As Long, ByVal lngEnd As Strin.
  • VB 一个函数传回多个值

    千次阅读 2010-06-23 11:32:00
    '●用Function当成子程序的一个好处,就是Function本身可以传回一个值到上一层呼叫的子程序里,但问题来了,若为了工作上的需要,想一次传回一个以上的值,那该怎么办? Private Sub Command1_Click()...
  • 就是上图红色框包围的部分,在系统给出的函数中,一般都会有这种说明。实际上很多人自己的写的函数却大多没有。加上这种说明的好处是多多多多的,不仅自己读着舒服,别人用着也方便,那怎样来添加这种说明呢!   ...
  • VB6.0的事件、回调函数

    千次阅读 2012-02-25 20:39:23
    在声明的 Sub、Function 或自定义的类型定义中,可以将函数指针传递到 As Any 或 As Long 类型的参数。 注意 可创建用 Visual C++ (或类似的工具)编译的 DLL 中的回调函数原型。要使用AddressOf 时,原型...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,202
精华内容 6,880
关键字:

vb定义function函数