[英]VBA Access: Defining arrays
我的問題是,我是否必須定義數組的尺寸,或者數組的大小可以動態更改嗎?
我有一個帶有是/否框的子窗體的窗體。 我有一個記錄集對象,該記錄集對象將表單數據的子集僅包含在選中框的行中。是的。
我遍歷記錄集並將值附加到字符串。
我寧願遍歷記錄集並將值放入數組中,除非我不知道用戶將選擇多少個框,所以在定義數組時我無法預測數組的長度。
我嘗試做類似的事情
dim myArray(0 to variableEqualToLengthOfRecordset) as variant
但這告訴我在語句中需要一個恆定值。
有誰知道我是否可以動態設置數組的長度?
如果我簡單地定義為
dim myArray() as variant
嘗試添加值時出現界外錯誤。
是的,您可以使用ReDim Preserve intArray()重新定義數組,但這非常昂貴,並且會降低程序速度。 我建議只將數組設置為最大大小,並在不選中任何框或什么都不做時放空格,然后僅將If Array(I)=“”然后不做任何事情。 除非您得到的陣列大於1,000,000,否則我懷疑您會遇到任何問題。
有多種方法可以執行此操作,但是總之,您可以定義數組並動態重新定義它。 要重新定義,請使用Redim varArray或簡單地覆蓋變量。 這是我不知道字符串長度時使用的小例子
Dim varArray as String
varArray = Split(String, " ") ' Or whatever type it is and its delimiter.
'Then just cycle through the array with a for loop
for Counter = LBount(varArray) to UBound(array)
string = string + varArray(counter)
next counter
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.