軟體:Excel 版本:Office 2013 各位先進好! 我想請問一下在定義多維動態陣列時, 假如我需要計算一個適當的大小, 例如 變數經過運算後得到三個變數值mini = 3, maxi = 15, size = 8 想讓程式根據程式過程中得到的變數值而量身訂做一個多維矩陣 Dim matrix(mini To maxi,1 To length) as integer 就會出錯,說length必須要是常數, 可是mini To maxi都沒有問題, 就只有length有問題, 好奇怪! 不知道板上先進能不能解釋一下問題出在哪裡?該如何解套? 感謝各位先進的幫忙~
作者: soyoso (我是耀宗) 2021-03-23 20:14:00
mini To maxi都沒有問題,就只有length有問題,這方面可以只以mini To maxihttps://i.imgur.com/0HLJV8w.jpeg還是有問題的先宣告matrix() as ....再redim matrix(mini to maxi, 1 to....) ...另外內文變數值要在執行redim前正確取得
請問s大 我如果一開始先dim matrix() as 程式會不會以為我只是在定義一維向量?但其實我想要的是二維向量我試的結果 似乎是多維度的最後一個維度長度不能是變數S大因為用一維的 所以maxi會出現問題還是我有誤解?
作者: soyoso (我是耀宗) 2021-03-25 07:22:00
不是,用一維會誤會的話,一樣也用二維Dim matrix(mini To maxi,1 To length) as integer,標記在lengthDim matrix(mini To maxi, 1 To 10) As Integer,標記在maxiDim matrix(mini To 10, 1 To 10) As Integer,標記在mini必須是常數運算式所以維度的上限(上標)或是下限(下標)只要是變數就會錯誤,而非最後一個不能是變數dim matrix()是動態的,不會只是定義一維,就看之後redim補充一下,內文寫到length必須要是常數,可是mini To maxi都沒有問題,這並不是指mini To maxi是正確的,而是在取得1 To length這個上下限(標)時就產生錯誤,所以標記在length這個地方