
fg为可选参数,默认值为0
Public Function Rlzl_Convert(ByVal In_Str As String, Optional ByVal fg As Long = 0) As String
Visual Basic 包含内置的、或内部的函数,如 Sqr、Cos 或 Chr。此外,还可用 Function 语句编写自己的 Function
过程。
函数过程的语法是:
Private|Public][Static]Function procedurename
(arguments) [As type]
statements
End Function
与 Sub 过程一样,Function 过程也是一个独立的过程,可读取参数、执行一系列语句并改变其参数的值。与子过程不同,Function
过程可返回一个值到调用的过程。在Sub 过程与Function 过程之间有三点区别:
一般说来,让较大的语句或表达式的右边包含函数过程名和参数 (returnvalue
= function),这就调用了函数。
与变量完全一样,函数过程有数据类型。这就决定了返回值的类型。(如果没有 As 子句,缺省的数据类型为 Variant。)
给 procedurename
自身赋一个值,就可返回这个值。Function 过程返回一个值时,该值可成为较大表达式的一部分。
例如,下面是已知直角三角形两直角边的值,计算第三边(斜边)的函数:
Function Hypotenuse (A As Integer, B As Integer) As String
Hypotenuse = Sqr (A ^ 2 + B ^ 2)
End Function
在 Visual Basic 中调用 Function 过程的方法和调用任何内部函数的方法是一样的:
Label1Caption = Hypotenuse(CInt(Text1Text), _
CInt(Text2Text))
strX = Hypotenuse (Width, Height)
上例中的参数A As Integer, B As Integer声明了A和B两个变量为整型,下边的CInt(Text1Text), CInt(Text2Text)则把文本框Text1的值给A,Text2的值给B,然后Sqr (A ^ 2 + B ^ 2)给A和B进行计算,将结果赋值给Hypotenuse,最后在Label1上显示出来或者赋值给变量就像strX = Hypotenuse (Width, Height)
Private Sub Command1_Click()
Dim a$(), b$()
a = Split("张三,李四,王红,王毅力,王大叔", ",")
b = findstr(a, "王")
For i = 0 To UBound(b)
Print b(i)
Next
End Sub
Private Function findstr(ByRef Expression() As String, ByVal Find As String) As String()
Dim m_Array$(), i%, n%
n = 0
For i = LBound(Expression) To UBound(Expression)
If InStr(Expression(i), Find) > 0 Then
ReDim Preserve m_Array(n)
m_Array(n) = Expression(i)
n = n + 1
End If
Next
findstr = m_Array
End Function
这个函数的用法,是传递两个string类型的参数。
你想直接传递数组是不可能的。
解决思路:
1、循环遍历数组,将数据拆成一对对的字符串,使用此函数
2、再重新定义一个函数,支持传递数组参数,内部功能与1类似。即重新封装一下。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)