在窗体中就一个列表框
当值等于1~100中每个数时,对这个数进行1~这个数相加,如50,从1~50进行相加。下面代码能实现这个功能,问题是i怎么就不会出错的?
Private Sub Form_Load()
Dim i As Integer
On Error GoTo handlerror
List1.Clear
For i = 1 To 100
List1.AddItem i & "=" & iSum(i)
Next i
Exit Sub
handlerror:
End Sub
Public Function iSum(dhi)
Dim i As Integer
For i = 1 To dhi
iSum = iSum + i
Next i
End Function
2个过程里的i都是局部的(私有),不会有冲突。
两个i都是局部变量,分别指向不同的内存地址,这是它们不是同一个变量的根本所在。
此外函数iSum的参数是传值,也就是传递一个变量的副本给它,Load中调用iSum,传递i给它,实际上就是创建一个i的副本(也就是iSum中i的内存地址)用它来计算。即使你修改了它,也不会影响到Load中的i
1、全局变量:
需要用 PUBLIC 声明;
一般情况下,最好将所有的全局变量定义在单独的《模块》文件里,进行集中、统一的管理比较好!
2、模块变量:
需要用 PRIVATE 声明即可;
指类、或模块、或窗体中的任何一个方法或函数访问的,声明在方法体或函数体外面的变量;
3、私有变量:
需要用 PRIVATE 或者 DIM 声明即可;
指在方法体或函数体内声明的变量,且非 PUBLIC 访问级,所以这个变量只能被当前方法或函数访问使用;