请教,为什么会出现错误!
vb吧
全部回复
仅看楼主
level 8
tbzp666 楼主
今天想做一个程序,但是程序报错
但是我这样做不会出错
为什么呢
2025年06月16日 08点06分 1
level 8
tbzp666 楼主
我目的想做一个对打印图形的一个整理,想用不同的command,来打印不同的图案
2025年06月16日 08点06分 2
控件数组不是数组,是对象。所以得用 .LBound 和 .UBound 方法来代替,LBound 和 UBound 函数。另外控件“数组”并不一定是连续的,因为它是可以存 xxx(0)有 xxx(1)没有 xxx(2)又有 的情况。所以,最好是用 For Each 遍历, 而不是 LBound To UBound。
2025年06月17日 01点06分
@yjryym 学到了
2025年06月17日 01点06分
@yjryym for each 又怎么写
2025年06月17日 06点06分
level 15
Command1.UBound,不是UBound(Command1),控件数组的上下界语法与普通数组不同(因为控件数组本质上其实也不是数组)
2025年06月16日 13点06分 3
学到了
2025年06月17日 01点06分
level 15
使用For Each循环遍历控件数组的参考代码:
Dim i As CommandButton '定义一个控件类型的变量作为循环变量
For Each i In Command1
i.Caption = i.Index
'注意变量i不是“数组下标”,而是控件本身,所以写成Command1(i)是错误的
Next i
2025年06月17日 14点06分 4
受教了,我想问的是 yjryym说的那个控件“数组”并不一定是连续的,更适用于For each,为什么呢?for each in是有遍历查找的作用么
2025年06月19日 08点06分
@tbzp666 For Each是一种适用于集合(Collection)类的循环,它会依次访问集合中的每个元素,而无需关注元素的下标,循环变量表示的就是元素本身;某种意义上说,控件数组更接近集合,而且由于控件数组的下标可以不连续,通常的For循环在指向不存在的元素时会出错,而For Each就不会出问题
2025年06月19日 13点06分
@初音✨七奈 多谢指点
2025年06月19日 23点06分
1