Page 1 of 3123

刚才在运行一个自己几年前用VB写的类似小闹钟的时间提示软件时,弹出提示系统没有Comdlg32.ocx,汗!忘记了这台机子没有装VB。Baidu一下”Comdlg32.ocx 下载”,哗的出了一大堆网站,然而打开几个结果网页慢的是要老命,为下载一个软件还得在下载网站转来转去点了几个网页。为了多让人家看广告,个人的下载站也难啊!

阅读全文



什么是XML

扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。

XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML 与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。

XML的简单使其易于在 任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就 意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。

XML的优点
阅读全文

摘自Pconline.com.cn,原文链接:http://www.pconline.com.cn/pcedu/empolder/gj/vb/0506/644702.html

Time 返回系统时钟的当前时间。
Date 返回系统时钟的当前日期。
Now 返回代表当前日期和时间的编码值。该函数经常用作其它系统时钟函数的参数。
Hour(Time) 返回指定时间的小时部分(0到23)。
Minute(Time) 返回指定时间的分钟部分(0到59)。
Second(Time) 返回指定时间的秒部分(0到59)。
Day(Date) 返回月份中的日期数(1到31)。
Month(Date) 返回日期中的月份(1到12)。
Year(Date) 返回日期中的年度。
Weekday(Date) 返回日期中代表一周中的星期几。
Abs(n) 返回n的绝对值。
Atn(n) 返回n的反正切值,以弧度为单位。
Cos(n) 返回n的余弦值,以弧度为单位。
Exp(n) 返回e的n次方。
Rnd(n) 产生0到1之间的一个随机数。
Sgn(n) n小于0时返回-1,n等于0时返回0,n大于0时返回1。
Sin(n) 返回n的正弦值,以弧度为单位。
Sqr(n) 返回n的平方根。
Str(n) 把数值值转换成字符串。
Tan(n) 返回n的正切值,以弧度为单位。
Val(n) 把字符串转换为数值值。
Int(n) 返回数字的整数部分。8.4–>9
Fix(n) 返回数字的整数部分。8.4–>8

以上函数在VB6和VBScript中都适用,在。NET里面要在前面加上相应的命名空间,如System.Math.Cos(),Microsoft.VisualBasic.Hour()。

数据类型转换函数:

转换函数 将表达式转换成
CBool Boolean
CByte Byte
CCur Currency ‘只在VB7.0以下有效
CDate Date
CDbl Double
CInt Integer
CLng Long
CSng Single
CStr String
CVar Variant ‘只在VB7.0以下有效
CVErr Error ‘只在VB7.0以下有效

若想了解Visual Basic正在使用哪种变量类型,可使用 VarType 函数。

字符串处理函数

关键字 说明 示例
Ucase 将字符串中的字母改为大写 Ucase(“Kim”)返回KIM
Lcase 将字符串中的字母改为小写 Lcase(“Kim”)返回kim
Len 确定字符串的长度(以字符为单位) Len(“Mississ”)返回7
Right 返回字符串右部指定个数的字符 Right(“Budapest”,3)返回pes
Left 返回字符串左部指定个数的字符 Left(“Budapest”,4)返回Buda
Mid 从某一指定起始点开始返回字符串中指定个数的字符 Mid(“Sommers”, 4, 3) 返回mer
InStr 从一个较大字符串中查找另一个字符 start% = InStr(“bob”,”bobby”)start%变量返回值1
String 重复指定字符串中的字符,返回新的字符串 String(8, “*”)返回********
Asc 返回指定字母的ASCII代码 Asc(“A”)  返回65
Chr 返回指定ASCII代码对应的字符 Chr(65) 返回A
Xor 对两个数字执行“异或”操作,其返回值可用来对文本进行加密、解密 65 Xor 50  返回115    115 Xor 50  返回65

注意:Right和Left在.Net中使用时前面要加命名空间Microsoft.VisualBasic;String在.Net中无效。

注册表读写函数:

GetSetting 检索注册表设置值
SaveSetting 保存或创建注册表设置值
GetAllSettings 返回一个包含多项注册表设置值的数组
DeleteSetting 删除注册表设置值

以前都是用textbox的KeyPress事件来控制字符输入,今天用看程序的时候,无意中发现textbox有个Validate事件。在MSDN里 面查询了下Validate事件的作用,才发现原来用这个事件可以简化很多过程。最简单的就是控制textbox的字符输入了。MSDN里面对 Validate事件的说明如下:

Validate事件

在焦点转换到一个(第二个)控件之前发生,此时该控件的 CausesValidation 属性值设置为True。
语法
Private Sub object_Validate(KeepFocus As Boolean)
Validate事件语法包含下面几部分:
部分 描述
object 一个对象表达式,其值为“应用于”列表中的一个对象。
KeepFocus 确定控件是否失去焦点的值。KeepFocus设置为True时,控件保持焦点。
说明
Validate 事件和CausesValidation 属性协同工怍,防止控件失去焦点直到满足确定的准则。
重点 只有在即将获得焦点的控件的CausesValidation属性值设置为True时,Validate事件才发生。

如,设置textbox只能输入数字,
Private Sub Text1_Validate(Keepfocus As Boolean)
If Not IsNumeric(Text1.Text) Or Val(Left(Text1.Text, 1)) = 0 Then
Keepfocus = True
MsgBox “请输入有效数字.”, vbCritical, “Error”
End If
End Sub

也 就是说,当你离开textbox的时候,首先触发Validate事件(前提:textbox的CauseValidation要设置成True),执行 if语句,用IsNumeric函数判断textbox.text是否是数字,如果不是数字,textbox keepfocus也就是继续保持焦点。如果不是数字提示”请输入有效数字.”。Val(Left(Text1.Text, 1)) = 0用来判断文本的第一个数字是否是0。

附,MSDN对IsNumeric函数的说明:

IsNumeric 函数

返回 Boolean 值,指出表达式的运算结果是否为数。
语法
IsNumeric(expression)
必要的 expression 参数是一个 Variant,包含数值表达式或字符串表达式。
说明
如果整个 expression 的运算结果为数字,则 IsNumeric 返回 True;否则返回 False。
如果 expression 是日期表达式,则 IsNumeric 返回 False

IsNumeric 函数示例

本示例使用 IsNumeric 函数判断变量的值是否可为数值。
Dim MyVar, MyCheck
MyVar = “53″ ‘ 指定值。
MyCheck = IsNumeric(MyVar) ‘ 返回 True。
MyVar = “459.95″ ‘ 指定值。
MyCheck = IsNumeric(MyVar) ‘ 返回 True。
MyVar = “45 Help” ‘ 指定值。
MyCheck = IsNumeric(MyVar) ‘ 返回 False。

今天在用VB编矩阵计算的时候。编写了个子程序,不过调用的时候老是出现BeRef参数类型不符的错误提示。后来才找到了原因,其实原来很简单。如下面这2段程序,运行起来第二段代码就会出现BeRef参数类型不符的错误提示。Function sum(a As Integer, b As Integer)
sum = a + b
End Function
Private Sub Command1_Click()
Dim m As Integer
Dim n As Integer
m = Val(Text1.Text)
n = Val(Text2.Text)
MsgBox (sum(m, n))
End Sub

Private Sub Command1_Click()
Dim m, n As Integer
m = Val(Text1.Text)
n = Val(Text2.Text)
MsgBox (sum(m, n))
End Sub

原因就在于:在第一段代码里面,我们分别定义了m和n的类型都为integer。但在第二段代码里面,虽然写了Dim m, n As Integer,但实际上我们只定义了n为integer,而没有定义m的类型,而对于未指定类型的变量,VB自动将它定义为Variant类型了,这就 导致了引用sum函数的时候BeRef参数类型不符合了。我以前一直认为Dim m, n As Integer,就是将m和n同时定义为integer类型了,而且像这种小错误,很容易犯,却又很不容易找出,因为很容易被忽略。看来编程过程中,语法 的小错误就必须靠多写代码来避免了。

顺便带下,VB有两种传递参数值的方法:ByRef表示传递的是参数的地址,ByVal表示传递的是 参数的值。ByRef是VB默认的参数传递方式,如果指定传递的是参数的值要使用关键字ByVal。而如果传递的是参数的值,VB在大多数情况下会自动转 换,及时参数声明的类型和实际参数的类型不同也问题不大。但是,如果采用ByRef,则要求参数声明的类型和实际参数的类型完全相同,否则VB就会报告错 误。

前几天帮研究室内的先辈编了一个VB程序。先辈的研究课题有一个工作台、员工的一个组合方案。要求输入初始值后能自动生成组合结果,也就是工作台和 员工的具体安排方法。也是属于最优化管理里面一个内容吧。自己以后也有可能用上,并且自己目前为止还没实际运用过VB的数组运算还有排列组合,通过这个编 程,对数组操作也实际运用了下。还想有时间作个矩阵的加减乘除算法吧。行列数相等的矩阵算法应该是很简单的,运用2个循环就可以解决了。现在问题是如 m*n和n*k之类的行列数目不相等矩阵的算法还不明白,过几天有空看下矩阵运算的书后再编吧。这东西我想以后自己的研究肯定会用的上的。其实对于编程, 我觉得关键是掌握算法,对于具体用什么语言来编,这都无所谓。因为语言只是算法的一个表现而已了。各个语言的区别只是在于语法的不同,他们实现的功能都是 一样的(就是你的目的)。具体内容就是一个2维数组的排列组合问题。
有这个一个2×5数组,如
1 1 1 1 0
1 0 0 1 1,初始值可任意输入,元素全部由0和1组成。上下行中可允许存在1和1,但不允许同时有0和0存在。求这个数组的排列组合。
条件,
a.上下2个元素的和必须为1,即上行为1,下行必须为0,或下行为1,上行必须为0。
b.初始值为0的列,不能变化,如初始值为
1 1 1 1 0
1 0 0 1 1,意味,第2,3,5列的位置不能变化,该数组的有效组合有4个。分别为:
1 1 1 1 0
0 0 0 0 1

1 1 1 0 0
0 0 0 1 1

0 1 1 1 0
1 0 0 0 1

0 1 1 0 0
1 0 0 1 1
换句话说,初始值中0的位置,决定了可产生有效组合的数量,有效组合数量=2^(5-0的个数)。如,初始值中有2个0,则可产生排列数组有8个,1个0的话,可产生16个,如果没有0的话,产生32个。

目的是就是求给定一个初始值,能产生多少个数组。
如给定初始值为:
11011
01111或
01111
10111之类的,求能产生多少个类似
11011
00100的组合,条件就是
a.上下2个元素的和必须为1,即上行为1,下行必须为0,或下行为1,上行必须为0。
b.初始值为0的列,不能变化,如初始值为
1 1 1 1 0
1 0 0 1 1,意味,第2,3,5列的位置不能变化,该数组的有效组合有4个。

虽然还是自己弄出来了。但是觉得算法不是很好。个人感觉这个不是计算机在算,是自己算好后,强加上去的。没法了,先凑合吧。
思路是,先判断列中1的位置,然后用几个变量记住。并获得总数。然后将原始数据(可能包括非法数据),格式成上1,下0,用一个数组存放。接着判断1的总数,然后在这个数组基础上输出可变组合。判断可变列的总数;
如果是0,无可变列,代表输入初始值有问题,
如果是1,代表有2个可变组合。用一个循环获得含1的列号,然后输出1,0和0,1,2个组合变化。
如果是2,代表有4个可变组合。用2个循环来解决,第一循环找第一个可变列1的列号,然后在此基础上进行第二个循环找第二个可变列1的列号,分别变化,输出可变数组。
如果是3,代表有8个可变组合。如果用循环,判断就太罗嗦复杂了。于是简单点,设置n1,n2,n3分别代表3个可变列的列号,然后设置一个循环从1-5,分别设置3个判断,当循环到n1,n2,n3的时候分别设置变化,输出可变数组。
如果是4,代表有16个可变组合。用上面的方法解决。
如果是5,则是全变化,32个可变组合。由于不存在不可变列。就分别对元素进行变化,输出。

具体代码:

Option Explicit
Dim Oarray(1, 4) As Integer ‘original array value
Dim Sarray() As String ‘set of combined array
Dim n As Integer ‘number of combinability array
Dim x As Integer ‘number of original array value 0
Dim z(4) As Integer ‘set of position of 0 in original array, use as hand

Private Sub cmdinput_Click()
Dim i As Integer
Dim j As Integer

For i = 0 To 4 ‘get original value
Oarray(0, i) = Val(Text1(i).Text)
Oarray(1, i) = Val(Text2(i).Text)
Next i

For i = 0 To 4 ‘set z()=1
z(i) = 1
Next i

x = 0
For i = 0 To 1
For j = 0 To 4
If Oarray(i, j) = 0 Then
z(j) = Oarray(i, j)
x = x + 1
End If
Next j
Next i

If x < 5 Then
n = 2 ^ (5 – x)
Label3.Caption = n ‘calculate number of combinability arrays
Else
n = 0
Label3.Caption = n
MsgBox (“no combinability arrays, input error. Please check data.”)
Exit Sub
End If

ReDim Sarray(n – 1) ‘redim Sarray
For i = 0 To n – 1
Sarray(i) = “”
Next i

End Sub

Private Sub cmdcalculate_Click()
Dim one As Integer
Dim i As Integer
Dim j As Integer
Dim m As Integer ‘Sarray(m)
Dim n1 As Integer
Dim n2 As Integer
Dim n3 As Integer
Dim n4 As Integer
Dim T1(1, 4) As Integer
Dim T2(1, 4) As Integer
Dim tz(4) As Integer

one = 5 – x

Call value2(z(), tz(), 4)
Call value1(Oarray(), T1(), 1, 4)
For i = 0 To 4
If tz(i) = 1 Then
T1(0, i) = 1
T1(1, i) = 0
End If
Next i
Call value1(T1(), T2(), 1, 4)
‘MsgBox (output1(1, 4, T2()))

Select Case one
Case 0
MsgBox (“no combinability arrays, input error. Please check data.”)

Case 1
For i = 0 To 4
If tz(i) = 1 Then
Sarray(0) = output1(1, 4, T2())
T2(0, i) = 0
T2(1, i) = 1
Sarray(1) = output1(1, 4, T2())
‘MsgBox (output3(1, Sarray()))
End If
Next i

Case 2
‘MsgBox (output2(4, tz()))
m = 0
Sarray(m) = output1(1, 4, T2())
m = m + 1
For i = 0 To 4
If tz(i) = 1 Then
n1 = i
For j = n1 + 1 To 4
If tz(j) = 1 Then
T2(0, j) = 0
T2(1, j) = 1
Sarray(m) = output1(1, 4, T2())
‘MsgBox (m & vbCrLf & output1(1, 4, T2()))
Call value1(T1(), T2(), 1, 4)
m = m + 1
End If
Next j

T2(0, i) = 0
T2(1, i) = 1
Sarray(m) = output1(1, 4, T2())
‘MsgBox (m & vbCrLf & output1(1, 4, T2()))
m = m + 1
End If
Next i

Case 3
n1 = 0
n2 = 0
n3 = 0

For i = 0 To 4
If tz(i) = 1 Then
If n1 = 0 Then
n1 = i + 1
Else
If n2 = 0 Then
n2 = i + 1
Else
n3 = i + 1
End If
End If
End If
Next i
n1 = n1 – 1
n2 = n2 – 1
n3 = n3 – 1

m = 0
Sarray(m) = output1(1, 4, T2())
m = m + 1

For i = 0 To 4
If i = n1 Then
Call value1(T1(), T2(), 1, 4)
T2(0, i) = 0
T2(1, i) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n2) = 0
T2(1, n2) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n3) = 0
T2(1, n3) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n2) = 1
T2(1, n2) = 0
Sarray(m) = output1(1, 4, T2())
m = m + 1
End If

If i = n2 Then
Call value1(T1(), T2(), 1, 4)
T2(0, i) = 0
T2(1, i) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n3) = 0
T2(1, n3) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1
End If

If i = n3 Then
Call value1(T1(), T2(), 1, 4)
T2(0, i) = 0
T2(1, i) = 1
Sarray(m) = output1(1, 4, T2())
End If
Next i

Case 4
n1 = 0
n2 = 0
n3 = 0
n4 = 0

For i = 0 To 4
If tz(i) = 1 Then
If n1 = 0 Then
n1 = i + 1
Else
If n2 = 0 Then
n2 = i + 1
Else
If n3 = 0 Then
n3 = i + 1
Else
n4 = i + 1
End If
End If
End If
End If
Next i
n1 = n1 – 1
n2 = n2 – 1
n3 = n3 – 1
n4 = n4 – 1
m = 0
Sarray(m) = output1(1, 4, T2())
m = m + 1

For i = 0 To 4
If i = n1 Then
Call value1(T1(), T2(), 1, 4)
T2(0, i) = 0
T2(1, i) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n2) = 0
T2(1, n2) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n3) = 0
T2(1, n3) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n4) = 0
T2(1, n4) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n3) = 1
T2(1, n3) = 0
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n2) = 1
T2(1, n2) = 0
T2(0, n3) = 0
T2(1, n3) = 1
T2(0, n4) = 1
T2(1, n4) = 0
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n4) = 0
T2(1, n4) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n3) = 1
T2(1, n3) = 0
Sarray(m) = output1(1, 4, T2())
m = m + 1
End If

If i = n2 Then
Call value1(T1(), T2(), 1, 4)
T2(0, i) = 0
T2(1, i) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n3) = 0
T2(1, n3) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n4) = 0
T2(1, n4) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n3) = 1
T2(1, n3) = 0
Sarray(m) = output1(1, 4, T2())
m = m + 1
End If

If i = n3 Then
Call value1(T1(), T2(), 1, 4)
T2(0, i) = 0
T2(0, i) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n4) = 0
T2(1, n4) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1
End If

If i = n4 Then
Call value1(T1(), T2(), 1, 4)
T2(0, i) = 0
T2(1, i) = 1
Sarray(m) = output1(1, 4, T2())
End If
Next i
Case 5
Sarray(0) = “1,1,1,1,1″ & vbCrLf & “0,0,0,0,0″
Sarray(1) = “0,1,1,1,1″ & vbCrLf & “1,0,0,0,0″
Sarray(2) = “0,0,1,1,1″ & vbCrLf & “1,1,0,0,0″
Sarray(3) = “0,0,0,1,1″ & vbCrLf & “1,1,1,0,0″
Sarray(4) = “0,0,0,0,1″ & vbCrLf & “1,1,1,1,0″
Sarray(5) = “0,0,0,0,0″ & vbCrLf & “1,1,1,1,1″
Sarray(6) = “0,0,0,1,0″ & vbCrLf & “1,1,1,0,1″
Sarray(7) = “0,0,1,0,1″ & vbCrLf & “1,1,0,1,0″
Sarray(8) = “0,0,1,1,0″ & vbCrLf & “1,1,0,0,1″
Sarray(9) = “0,0,1,0,0″ & vbCrLf & “1,1,0,1,1″
Sarray(10) = “0,1,0,1,1″ & vbCrLf & “1,0,1,0,0″
Sarray(11) = “0,1,0,0,1″ & vbCrLf & “1,0,1,1,0″
Sarray(12) = “0,1,0,0,0″ & vbCrLf & “1,0,1,1,1″
Sarray(13) = “0,1,0,1,0″ & vbCrLf & “1,0,1,0,1″
Sarray(14) = “0,1,0,1,1″ & vbCrLf & “1,0,1,0,0″

Sarray(15) = “0,1,1,1,0″ & vbCrLf & “1,0,0,0,1″
Sarray(16) = “0,1,1,0,1″ & vbCrLf & “1,0,0,1,0″

Sarray(17) = “1,0,1,1,1″ & vbCrLf & “0,1,0,0,0″
Sarray(18) = “1,0,0,1,1″ & vbCrLf & “0,1,1,0,0″
Sarray(19) = “1,0,0,0,1″ & vbCrLf & “0,1,1,1,0″
Sarray(20) = “1,0,0,0,0″ & vbCrLf & “0,1,1,1,1″
Sarray(21) = “1,0,0,1,0″ & vbCrLf & “0,1,1,0,1″
Sarray(22) = “1,0,1,0,1″ & vbCrLf & “0,1,0,1,0″
Sarray(23) = “1,0,1,0,0″ & vbCrLf & “0,1,0,1,1″
Sarray(24) = “1,0,1,1,0″ & vbCrLf & “0,1,0,0,1″

Sarray(25) = “1,1,0,1,1″ & vbCrLf & “0,0,1,0,0″
Sarray(26) = “1,1,0,0,1″ & vbCrLf & “0,0,1,1,0″
Sarray(27) = “1,1,0,0,0″ & vbCrLf & “0,0,1,1,1″
Sarray(28) = “1,1,0,1,0″ & vbCrLf & “0,0,1,0,1″

Sarray(29) = “1,1,1,0,1″ & vbCrLf & “0,0,0,1,0″
Sarray(30) = “1,1,1,0,0″ & vbCrLf & “0,0,0,1,1″

Sarray(31) = “1,1,1,1,0″ & vbCrLf & “0,0,0,0,1″

End Select
End Sub
Private Sub cmddisplay_Click()
Dim b As String
b = output3(n – 1, Sarray())
MsgBox (b)
End Sub

Private Sub cmdtofile_Click()
Dim i As Integer
Dim a, b
Open App.Path & “\output.txt” For Output As 1#
For i = 0 To n – 1 Step 1
a = “No.” & i + 1 & vbCrLf & Sarray(i) & vbCrLf
Print #1, a
Next i
b = “Total output ” & n & ” arrays”
MsgBox b
Close #1
End Sub

Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 49 Then
MsgBox (“input 0 or 1″)
KeyAscii = 0
End If
End Sub

Private Sub Text2_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 49 Then
MsgBox (“input 0 or 1″)
KeyAscii = 0
End If
End Sub

Private Function output1(i As Integer, j As Integer, a() As Integer) As String
Dim b As String ‘ output i*j matric to string
Dim m, n As Integer
For m = 0 To i
For n = 0 To j
If m > 0 And n = 0 Then
b = b & vbCrLf & a(m, n)
Else
If b = “” Then
b = a(m, n)
Else
b = b & “,” & a(m, n)
End If
End If
Next n
Next m
output1 = b
End Function
Private Function output2(i As Integer, a() As Integer) As String
Dim b As String ‘output array(i) to string
Dim m As Integer
For m = 0 To i
If m = 0 Then
b = a(m)
Else
b = b & “,” & a(m)
End If
Next m
output2 = b
End Function

Private Function output3(i As Integer, a() As String) As String
Dim b As String ‘output array(i) to string
Dim m As Integer
For m = 0 To i
If m = 0 Then
b = a(m)
Else
b = b & vbCrLf & vbCrLf & a(m)
End If
Next m
output3 = b
End Function

Private Function value1(a() As Integer, b() As Integer, i As Integer, j As Integer) As Integer
Dim m, n As Integer
For m = 0 To i
For n = 0 To j
b(m, n) = a(m, n)
Next n
Next m
End Function

Private Function value2(a() As Integer, b() As Integer, i As Integer) As Integer
Dim m As Integer
For m = 0 To i
b(m) = a(m)
Next m
End Function

Page 1 of 3123