精华内容
下载资源
问答
  • 我在网上抄的一个函数,是这样写的: Public Function number1ToCharacter(number As String) As String 但是我运行的时候为什么会报错?请高手帮忙分析下,谢谢。 显示如下: ![图片说明]...
  • VB.Net - 函数

    2018-03-01 09:39:46
    VB.Net - 函数过程是一组调用时一起执行任务的语句。执行该过程之后,控制返回到调用...定义函数函数语句用于声明函数的名称,参数和主体。 函数语句的语法是:[Modifiers] Function FunctionName [(ParameterList)]...

    VB.Net - 函数


    过程是一组调用时一起执行任务的语句。执行该过程之后,控制返回到调用过程的语句。 VB.Net有两种类型的程序:

    • Functions

    • Sub procedures or Subs

    函数返回一个值,而Subs不返回值。


    定义函数

    函数语句用于声明函数的名称,参数和主体。 函数语句的语法是:

    [Modifiers] Function FunctionName [(ParameterList)] As ReturnType
        [Statements]
    End Function
    • Modifiers 修饰符 :指定函数的访问级别;可能的值有:公共,私有,保护,朋友,关于保护超载,重载,共享和阴影朋友和信息。

    • FunctionName:表示该函数的名称

    • ParameterList 参数列表 :指定参数的列表

    • ReturnType 返回类型 :指定变量的函数返回的数据类型


    示例

    以下代码片段显示了一个函数FindMax,它接受两个整数值,并返回两个较大者。

    Function FindMax(ByVal num1 As Integer, ByVal num2 As Integer) As Integer
       ' local variable declaration */
       Dim result As Integer
       If (num1 > num2) Then
           result = num1
       Else
           result = num2
       End If
       FindMax = result
    End Function
    


    函数返回值

    在VB.Net中,函数可以通过两种方式向调用代码返回一个值:

    • 通过使用return语句

    • 通过将值分配给函数名


    下面的例子演示了如何使用FindMax函数:

    Module myfunctions
       Function FindMax(ByVal num1 As Integer, ByVal num2 As Integer) As Integer
          ' local variable declaration */
          Dim result As Integer
          If (num1 > num2) Then
              result = num1
          Else
              result = num2
          End If
          FindMax = result
       End Function
       Sub Main()
          Dim a As Integer = 100
          Dim b As Integer = 200
          Dim res As Integer
          res = FindMax(a, b)
          Console.WriteLine("Max value is : {0}", res)
          Console.ReadLine()
       End Sub
    End Module
    


    当上述代码被编译和执行时,它产生了以下结果:

    Max value is : 200
    


    递归函数

    一个函数可以调用自身。 这被称为递归。 以下是使用递归函数计算给定数字的阶乘的示例:

    Module myfunctions
       Function factorial(ByVal num As Integer) As Integer
          ' local variable declaration */
          Dim result As Integer
          If (num = 1) Then
              Return 1
          Else
              result = factorial(num - 1) * num
              Return result
          End If
       End Function
       Sub Main()
          'calling the factorial method
          Console.WriteLine("Factorial of 6 is : {0}", factorial(6))
          Console.WriteLine("Factorial of 7 is : {0}", factorial(7))
          Console.WriteLine("Factorial of 8 is : {0}", factorial(8))
          Console.ReadLine()
       End Sub
    End Module
    


    当上述代码被编译和执行时,它产生了以下结果:

    Factorial of 6 is: 720
    Factorial of 7 is: 5040
    Factorial of 8 is: 40320
    


    参数数组

    有时,在声明函数或子过程时,您不确定作为参数传递的参数的数量。 VB.Net param数组(或参数数组)在这些时候来帮助。

    以下示例演示了这一点:

    Module myparamfunc
       Function AddElements(ParamArray arr As Integer()) As Integer
          Dim sum As Integer = 0
          Dim i As Integer = 0
          For Each i In arr
              sum += i
          Next i
          Return sum
       End Function
       Sub Main()
          Dim sum As Integer
          sum = AddElements(512, 720, 250, 567, 889)
          Console.WriteLine("The sum is: {0}", sum)
          Console.ReadLine()
       End Sub
    End Module
    


    当上述代码被编译和执行时,它产生了以下结果:

    The sum is: 2938
    


    传递数组作为函数参数

    您可以在VB.Net中将数组作为函数参数传递。 以下示例演示了这一点:

    Module arrayParameter
       Function getAverage(ByVal arr As Integer(), ByVal size As Integer) As Double
          'local variables
           Dim i As Integer
           Dim avg As Double
           Dim sum As Integer = 0
           For i = 0 To size - 1
               sum += arr(i)
           Next i
           avg = sum / size
           Return avg
        End Function
        Sub Main()
            ' an int array with 5 elements '
            Dim balance As Integer() = {1000, 2, 3, 17, 50}
            Dim avg As Double
            'pass pointer to the array as an argument 
            avg = getAverage(balance, 5)
            ' output the returned value '
            Console.WriteLine("Average value is: {0} ", avg)
            Console.ReadLine()
        End Sub
    End Module
    


    当上述代码被编译和执行时,它产生了以下结果:

    Average value is: 214.4
    展开全文
  • 有一个函数定义为 ``` Private Function CountOrder(ByRef SampleNo As Short) As Short ``` 执行如下语句: (其中一段) ``` If (SampleNo >= 90 Or SampleNo ) Then CountOrder = 90 Exit Function ...
  • 【EXECL]】VB定义记录如何在execl里通过vb加入一个宏定义,此宏定义可以关联到我们自定义的vb function,这样就可以实现vb对execl 表格的控制。 环境:execl 2010 添加宏定义 操作步骤 【开发工具】->【Visual...

    【EXECL]】通过VB 宏定义添加自定义函数

    记录如何在execl里通过vb加入一个宏定义,此宏定义可以关联到我们自定义的vb function,这样就可以实现vb对execl 表格的控制。
    环境:execl 2010

    • 添加宏定义
      1. 操作步骤
        【开发工具】->【Visual Basic】 打开vb 工作台
        在 【模块】里添加一个文件用于添加宏
        : excel 对象里的文件对应的应该是各个execl,所以在里面加功能不一定可以在其它文件中使用,之后有机会实验后补充
      2. 添加宏用来对自定函数进行注册

        Sub autoscanprofileReg()
        Dim FuncName As String '函数名称
        Dim FuncDesc As String '函数描述
        Dim Category As String '函数类别
        Dim ArgDesc(1) As String '函数参数描述数组
        FuncName = "FunName"
        FuncDesc = "返回两个整数的和(测试函数参数描述)"
        Category = "函数参数描述测试"
        ArgDesc(0) = "函数参数第一个,整型"
        ArgDesc(1) = "函数参数第二个,整型"
        Call Application.MacroOptions(Macro:=FuncName, Description:=FuncDesc, Category:=Category, ArgumentDescriptions:=ArgDesc)
        End Sub
    • 添加功能
      在定义注册函数 后就可以开始按自己的需要定义功能 函数 了
      ”’
      Function StringSplit(arg1 As String) As String
      xxxxxx
      End Function

      ”’
      需要注意的是功能 函数 的定义 要和注册函数的描述一致
    • 运行宏
      通过以上两步,功能 就是OK了,接下来就是运行宏去执行注册功能函数。
      【开发工具】->【宏】
      选择刚定义 的注册函数 的名字,【执行】
    • 表格中添加function
      最后就是在表格中使用之前定义的功能 函数 ,插入函数 搜寻定义的函数,添入相应的参数
      duang
    展开全文
  • VB 调用API函数设计关于窗体,看第一眼,我还以为是调用Windows系统的关于窗口,仔细看,定义了自己的信息,这个例子可看作是VB使用API函数的例子,了解一些用法,关于本例子中的API用法,可看以下代码:  API函数...
  • 函数定义在Lisp中函数定义使用下面的格式:(defun function1 ()(format *query-io* "in function1~%"))其中defun是函数定义的关键字,function1是函数名,跟着的()是参数定义,在这里不需要参数,所以()中间是空...

    进一步了解一下Lisp语言中函数的使用,虽然从这篇文章才开始介绍函数,但是我们在之前的Lisp文章中已经多次接触函数了。

    函数的定义

    在Lisp中函数的定义使用下面的格式:

    (defun function1 ()

    (format *query-io* "in function1~%"))

    其中defun是函数定义的关键字,function1是函数名,跟着的()是参数定义,在这里不需要参数,所以()中间是空的,然后(format *query-io* "in function1~%")是函数体,就是调用函数时需要执行的代码。

    其中的函数体可以是任意多行的语句,如下面这样:

    (defun function1 ()

    (format *query-io* "in function1 line 1~%")

    (format *query-io* "in function1 line 2~%")

    (format *query-io* "in function1 line 3~%"))

    函数的调用

    函数的调用比较简单,使用括号加函数名就可以了,如(function1)。

    函数的返回

    在没有加入返回语句的情况下,一个函数的最后一个语句的计算结果会被当作函数的返回值返回给调用者,如下面的代码中,main函数调用function1函数,而function1函数的最后一个语句计算结果是“value to return”,所以在main函数中调用function1函数后会将变量result赋值为“value to return”,然后通过format语句将result的结果打印出来:

    (defun main ()

    (setq result (function1))

    (format *query-io* "result is: ~a~%" result)

    )

    (defun function1 ()

    (format *query-io* "in function1~%")

    "value to return")如果希望提前从一个函数中返回,需要用到return-from函数,如下面的代码中函数function1执行到第二句的时候直接调用return-from返回了“value returned by return-from”作为返回值,后面的语句就不执行了,main函数中result的结果就是“value returned by return-from”

    (defun main ()

    (setq result (function1))

    (format *query-io* "result is: ~a~%" result)

    )

    (defun function1 ()

    (format *query-io* "in function1~%")

    (return-from function1 "value returned by return-from")

    (format *query-io* "this line will not be reached")

    "value to return")

    需要注意的是return-from函数的第二个参数是函数名,从哪个函数返回就写哪个函数的函数名,如果一个函数的函数名有修改记得修改return-from对应的函数名。

    这一点多少有点令人不满,为什么从函数返回还要指定函数的名称,不像Lisp简洁的风格。

    参数的定义

    上面提到的函数都市没有参数的,现实中定义和使用函数一定会需要参数,Lisp中函数的参数如何定义呢?

    Lisp中函数的参数定义在函数名后面的括号中,如下面的代码就定义了a 和b 两个参数。因为Lisp使用的是动态类型,而非静态类型,所以参数是不需要指定类型的,不像c语言那样需要(int a , String b)这样定义参数。

    (defun function3 (a b)

    (format *query-io* "parameter a is: ~a b is: ~a~%" a b ))

    对于有参数的函数,调用时需要在函数名后带上相同数量的变量作为实际参数,如function3的调用如下,其中10会被赋予变量a,而20会被赋予变量b。

    (function3 10 20)

    如果函数调用是填写的参数数量和函数定义时不同,执行时会报错的。

    如(function3 10)会报参数太少,而(function3 10 20 30)会报参数太多。

    有关Lisp函数的参数定义还有更复杂的形式,如可选参数,关键字参数等,在以后的文章中我们继续学习。

    展开全文
  • vb编写的函数作图软件的代码: Const Pi = 3.1415926535 '定义圆周率 Dim a, wor '定义用于在Picture1上的一个位置打印字符函数 Private Function PrintWord(X, Y, Word As String) With Picture1 .CurrentX = X ....
  • 1. Sub 过程定义时无需定义返回值类型,而Function 过程一般需要用“As 数据类型” 定义函数返回值类型。 2. Sub 过程中没有对过程名赋值的语句,而Function 过程中一定有对函数名赋值的语句。 3. 调用过程:调用...

    Function是函数,sub是子程序,都可以传递bai参数,但函数有返回值,子程序没有
    function 可以用自身名字返回一个值,sub 需定义别的变量,用传址方式传回值。
    Sub 过程与Function 过程的区别:
    1. Sub 过程定义时无需定义返回值类型,而Function 过程一般需要用“As 数据类型” 定义函数返回值类型。
    2. Sub 过程中没有对过程名赋值的语句,而Function 过程中一定有对函数名赋值的语句。
    3. 调用过程:调用 Sub 过程与 Function 过程不同。调用 Sub 过程的是一个独立的语句,而调用函数过程只是表达式的一部分。Sub 过程还有一点与函数不一样,它不会用名字返回一个值。但是,与 Function过程一样,Sub 过程也可以修改传递给它们的任何变量的值。
    4. 调用 Sub 过程有两种方法:
    以下两个语句都调用了名为 MyProc 的 Sub 过程。
    Call MyProc (FirstArgument, SecondArgument)
    MyProc FirstArgument, SecondArgument
    注意当使用 Call 语法时,参数必须在括号内。若省略 Call 关键字,则也必须省略参数两边的括号。

    展开全文
  • 细谈VB中的function程序应用问题!

    万次阅读 热门讨论 2012-06-06 21:14:05
     Function 过程是由用户定义的独立的函数过程,与Sub字程序类似。Function 函数过程可读取参数,修改语句。可作为独立的基本语句调用,也可以在程序或是函数中嵌套使用。它有返回值。Vb 中有许多内置的函数,如sin,...
  • Sub 过程定义时无需定义返回值类型,而Function 过程一般需要用“As 数据类型” 定义函数返回值类型。 2. Sub 过程中没有对过程名赋值的语句,而Function 过程中一定有对函数名赋值的语句。 3. 调用过程:调用 ...
  • VB.NET中Sub和Function的区别

    千次阅读 2018-12-26 14:02:20
    function函数,sub是子程序,都可以传递参数,但函数有返回值...1. Sub 过程定义时无需定义返回值类型,而Function 过程一般需要用“As 数据类型” 定义函数返回值类型。 2. Sub 过程中没有对过程名赋值的语句...
  • function函数,sub是子程序,都可以传递参数,但函数有返回值,子程序没有 function可以用自身名字返回一个值,sub需定义别的变量,用传址方式传回值。 Sub过程与Function过程的区别: Sub过程定义时无需...
  • 文件位置:存储于二次开发文件SCL_API.vb文件内 ... '函数定义 '网络初始化 <DllImport("MiniLED.dll", CallingConvention:=CallingConvention.Cdecl)> Function MC_NetInitial(ByVal mDevId As Short,...
  • 1、modual,模块,一种特殊的静态...2、正常的类中,定义为shared变为静态函数,如C++中的static public shared function getcurrenttime(byval context as httpcontext )  return "aa" end function
  • '定义一个函数,把业务状况表的数据加载到字典里 Public Function AddDictionary(OriginalDictionary)  Dim Path, CurrentWorkBook, CurrentWorkSheet, CurrentName  Dim str1, str2, str3, str4, str5, str6  ...
  • Sub 与 FunctionVB程序设计中的区别

    千次阅读 2011-07-17 10:49:28
    Private Sub 与 FunctionVB程序设计中的区别function函数,sub是子程序,都可以传递参数,但函数有返回值,子程序没有function 可以用自身名字返回一个值,sub 需定义别的变量,用传址方式传回值。Sub 过程与...
  • API函数getWindowRect()的定义 Private Declare Auto Function GetWindowRect Lib "user32" (ByVal hwnd As IntPtr, ByVal lpRect As RECT) As Long 位置信息结构体  Public Structure RECT ...
  • Sub 过程定义时无需定义返回值类型,而Function 过程一般需要用“As 数据类型” 定义函数返回值类型。 2. Sub 过程中没有对过程名赋值的语句,而Function 过程中一定有对函数名赋值的语句。 3. 调用过程:调用 ...
  • 现在用VB.NET重构机房收费系统,要尽量把代码重复利用率降低,所以就网上搜着了一个带参数的可以自动检索代码重复利用率的函数,留着以后备用。Public Function IsExists(ByVal frmTestText As Windows.Forms.Form)...
  • Function函数,可以带返回值 2:语法 Sub SubName(参数1, 参数2,...) End Sub Function FunctionName(参数1, 参数2,...) ... FunctionName = 返回值 End Function 3:调用方法: Sub直接用 SubName 参数1, 参数2,....
  • VB备忘录(6)过程与函数

    千次阅读 2013-03-25 21:52:59
    三种: sub过程: 无返回值 Function: 有返回值 Property属性过程: 返回并指定值,以及设置对象引用。 ...参数列表,多个时用逗号隔...Function过程,最后返回值需给过程名赋值,因此在定义时,过程最后须指定其值。
  • VB里,所有API函数、所有常数,都需要用户声明。 ``` Module Module1 Const SW_SHOWNORMAL = 1 Const SW_SHOW = 5 Const SW_SHOWMAXIMIZED = 3 Const SW_SHOWDEFAULT = 10 Public Const WM_...
  • Excel VBA 函数返回值

    千次阅读 2020-02-11 13:29:52
    VB函数定义格式与C有很大区别: 格式: Sub 过程名(参数列表 ... ) 过程体 End Sub Function 定义一个函数 官方文档 ???? Microsoft Docs | 编写 Function 过程 Function 函数名(参数列表 ... ) 函数函数名...
  • 在程序中,为了得到当前工作目录,使用了API函数GetCurrentDirectory,使用工具API Text Viewer中定义:Public Declare Function GetCurrentDirectory Lib "kernel32" (ByVal nBufferLength As Long, ByVal lpBuffer ...
  • 对外提供的接口函数: Procedure invoke(params :PChar; result : PChar) ; 我现在在VB中写的如下: 在模块下定义 Public Declare Function invoke Lib "nxmi.dll" (ByVal strIn As Byte, ByRef strOut As ...
  • VB作为最热门的编程语言之一,它有着图形用户界面(GUI)和快速应用程序开发(RAD)系统,从而可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。...定义一个加法函数 Private Function addit
  • C#之函数

    2011-11-02 15:07:42
    这些天看C#,感觉在C#中函数的使用比在VB中使用的更为广泛,相比于VB得到了很大的扩展。 首先,函数既可以无返回值,又可以有返回值 定义一个无返回值的函数 Static void Write() { Console.WriteLine(...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 149
精华内容 59
关键字:

vb定义function函数