vb如何定义动态数组

j=server.mappath("")+"/tupian/xc"Dim fso, f, f1, fc, idim s(10)  Set fso = CreateObject("Scripting.FileSystemObject")  Set f = fso.GetFolder(j)  Set fc = f.SubFolders  For Each f1 in fc  s(i)=f1.name  i=i+1Next  定义数组的时候不知道要添加多少个信息可是定义动态数组dim s(10)换成 dim s()又会提示错误说超越下标请高手指点  要是能跟java那样定义个对象(var a=new Array())那样多简单

第1个回答  2015-09-11
  方法如下:
  Dim L As Long
  Dim W As Long
  L = xlsworkbook.Worksheets(1).[A65536].End(xlUp).Row'获得有效行数
  W = xlsworkbook.Worksheets(1).[IV1].End(xlToLeft).Column获得有效列数
  ReDim ARR(1 To L, 1 To W) As String'动态定义数组.本回答被网友采纳
第2个回答  2012-08-31
VB里数据定义过后,还可以用ReDim改变

dim a(10)
redim a(20)

还可以加Preserve以保持数据中原有的数据。

redim preserve a(30)本回答被网友采纳
第3个回答  2012-08-31
dim 数组名字()

括号里面空着就好了,用的时候,Redim一下。如楼上所说。
第4个回答  2012-08-31
举例:
Dim d() As Integer '一开始声明的数组规模为0
可以分别用带有关键字Preserve或不带关键字Preserve的语句,重新声明数组,以改变规模:
例1:ReDim d(1 + 2) As Integer '重新定义数组的规模为2
例2:ReDim Preserve d(1 + 10) As Integer '重新定义数组的规模为10,重新定义将保留它们原来元素1与2中的数据。

比如:
dim d() as integer
redim d( 1 to 2) as integer
d(1) = 1
d(2) = 2
如果接下来:
redim d( 1 to 4) as integer
增加了2个元素,但是原来的d(1)和d(2) 都为0。
如果接下来:
redim Preserve d( 1 to 4) as integer
增加了2个元素,但是原来的d(1)和d(2)保留维持原来的值。
相似回答