RsProxyList.Open objDBCommand,,1,1
dim recCount:recCount = RsProxyList.RecordCount
Dim output(recCount,2)
我收到错误,因为recCount的类型错误。我试图将其转换为Int
,但这也不起作用。以下工作正常:
RsProxyList.Open objDBCommand,,1,1
dim recCount:recCount = RsProxyList.RecordCount
Dim output(3,2)
如何转换recCount
以使此数组声明起作用?
答案 0 :(得分:1)
您需要先将Array声明为动态,然后使用ReDim
动态设置第一个维度,就像这样;
Dim output() 'Declare a "Dynamic Array"
ReDim output(recCount, 2) 'Set dynamic first dimension.
通过指定这样的尺寸;
Dim output(10, 2) 'Declare a "Fixed Array"
你告诉VBScript构建一个固定数组,它不接受变量作为维度声明。
Dim output()
与Dim output
关于使用
似乎存在一些争论Dim output()
与
Dim output
@Bond中{p> comments below提出了我认为使用Dim output()
最有说服力的内容。因为VBScript将所有变量存储为
Variant
数据类型,使用Array
声明Dim output
就像声明任何其他变量一样,而Dim output()
创建Array
(0大小的数组,但仍然是一个数组),这意味着就VBScript运行时而言,存在一个显着差异,Dim output()
是Array
。这有什么关系?,这很重要因为像
IsArray()
这样的函数仍会将变量检测为Array
,而使用Dim output
声明的“数组”将返回False
}。
有用的链接
@DougGlancy's answer to Redim without Dim?(vba但仍然相关)。
VBScript Reference - VBScript Variables(特别是Array Variables子标题)。