Dimlabel1_left(0To9)AsLong
指明0-9,去掉(0-9),还有你一个数据中有个b,也不对(细心阿)这样就ok了
OptionExplicit
Dimi
PrivateSubForm_Click()
Dimlabel1_top
Dimlabel1_left
label1_left=Array(120,3000,4200,960,2520,4080,960,2520,4080,5760)
label1_top=Array(720,1200,1200,2160,2160,2160,3000,3000,3000,1680)
Fori=0To9
Printlabel1_top(i)
Nexti
EndSub
我运行了一个,可以
另一个留给你了你好!
g是什么?
for
i
=
1
to
255
x(i)=g(i)'不知道g是什么,假设是数组
next
希望对你有所帮助,望采纳。假如你是用动态数组的话,定义的时候不写下标是对的,就像Dim DATA2_LIST() As String这样,
但是后面要用的时候还要重新定义一下,比如Redim DATA2_LIST(0 to 3),然后才能DATA2_LIST(0)="abc"这样用,否则会报错的。
重新定义可以很多次,
Redim DATA2_LIST(0 to 3)
Redim DATA2_LIST(0 to 4)
Redim Preserve DATA2_LIST(0 to 5)
像这样是可以的,
当然每次redim过后前面给数组元素赋的值会清空掉,你得加Preserve关键字来让你的数据保持住。
如果你要取原来数组大小,可以用UBound和LBound函数取上下标,比如
Dim DATA2_LIST() as String
Redim DATA2_LIST(2 to 4)
UBound(DATA2_LIST)就等于4,LBound(DATA2_LIST)就等于2
但是如果动态数组只有dim而没有redim的话,用UBound就会报错
Dim DATA2_LIST() as String
msgbox UBound(DATA2_LIST) 这样程序就会完蛋
所以我用动态数组的时候通常是牺牲掉一个第0个元素,来换取使用的便利
Dim DATA2_LIST() as String
Dim lngListCnt as long
Redim DATA2_LIST(0)
lngListCnt = UBound(DATA2_LIST)
lngListCnt = lngListCnt + 1
Redim Preserve DATA2_LIST(0 to lngListCnt)
DATA2_LIST(lngListCnt) = "新增加的第一个元素"
lngListCnt = UBound(DATA2_LIST)
lngListCnt = lngListCnt + 1
Redim Preserve DATA2_LIST(0 to lngListCnt)
DATA2_LIST(lngListCnt) = "新增加的第二个元素"
当然使用的时候记得从下标1开始取哦,元素0永远是空的答案补充:这个方法只适用于一维数组,多维数组只能一个一个分别赋值,没有简便方法。
============
代码如下。
============
Dim a As Variant
Private Sub Form_Load()
a = Array(1, 5, 2, 43, 222)
End SubUBound(<数组名>[,<参数名>]):功能是返回数组某维的维上界值。比如:Dim a(3,5) as Interger……t=UBound(a,2),即表示t=数组a第二维的上界,即t=5。对于一维数组,维可以省略,例如:Dim a(3) as Interger……t=UBound(a),即表示t=3 。你的代码中UBound(a)=5,所以是Redim b(5) 。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)