請搜尋一下VBS動態陣列.......應該會有你要的答案哦~
謝謝您的回覆
應該是說我知道我有一個Array
AAA = Array("a","b",c")
在這之前我必須先Dim AAA(2)
有沒有辦法不要手動輸入數字"2"?
謝謝。
你想要做的就是動態陣列
應該是說你去搜尋vbs動態陣列,了解一下動態陣列的正確用法之後
就會知道輸入2不是必須的阿..........
很多資料可以參考看看.....
ASP 動態增加陣列長度
http://smlboby.blogspot.com/2010/05/asp.html
VBScript - 動態 Array 實現方法大全!
https://www.zendei.com/article/97862.html
AAA = Array("a","b",c") 就這樣,不用 dim AAA 已經是 array
dim 一般是會準備 redim 的吧
我再去理解一下。謝謝您。
其實我真正遇到的問題如下:比如:AFile裡有超過兩個以上的檔案。
原本Code如下。
'========================
intCount=0
For Each strFile in AFile
intCount = intCount+1
.
.
Dim AA()
.
AA = array("BB")
a= UBound(AA)
ReDim AA(a)
.
.
Next
'==========================
以上Code在執行For Each第一圈時不會有問題,但是第二圈時會出現Script Error:Description:類型不符
Line(55):"Dim Dim AA()"
Cause: Microsoft VBScript:執行階段錯誤
但是當我改成如下:
'========================
intCount=0
For Each strFile in AFile
intCount = intCount+1
.
.
If intCount <= 0 Then
Dim AA()
Else
ReDim AA(a)
End If
AA = array("BB")
a= UBound(AA)
ReDim AA(a)
.
.
Next
'==========================
執行幾圈For Each都沒有問題,結果是成功的。看起來很像是For Each內的Dim/Redim問題。
請問您知道是什麼原因嗎?怎樣改會比較好呢?謝謝。
話說...你的DIM宣告陣列為何要放在for迴圈面裡面呢?XD
這樣不會重複宣告嗎
所以問題是因為重複宣告嗎? 那我再改一下。感謝。
dim 一般放最頂便可以了
謝謝。照您所說的,我把Dim放在最top,剩下用ReDim(UBound(...))方式重新更改了我所有code.感覺比較合理一點了,也少了很多錯。
我再請教一個問題。當我有個For Each加上裡面有個判斷式If如下:
ReDim AluViasFoundGround(1)
c = 0
For Each AluViasGnd In AluViasFound
If AluViasGnd <> AluViasFoundSignal(0) Then
AluViasFoundGround(c) = AluViasGnd
c = c + 1
End If
Next
當滿足條件If時,AluViasGnd值才會輸入AluViasFoundGround。
今天我恰巧知道AluViasFoundGround維度所以可以先在上面ReDim AluViasFoundGround(1)。請問要是我無法提前知道AluViasFoundGround維度,這種情況該怎麼寫?Thanks...
你好像又鑽進原來的問題了耶.....
再貼一次....範例,可能需要思考比較一下跟你寫的結構差別在哪
VBScript - 動態 Array 實現方法大全!
https://www.zendei.com/article/97862.html
原來如此。可以用迴圈方式即時改變維度。不需要在外固定維度。感謝。