我會在前言中說我對VBA非常陌生,今天在uni以後沒有使用它之後有效地重新啓動。如何重新格式化VBA中的二維數組以使每個項目之間具有兩個「0」值?
我創建了一個二維數組Answers()
,其中包含多個回答者(Resp
)到若干問題(Ques
)的答案。
這裏的陣列中的第一行的一個示例:
[3,3,3,2,1,2,2,3,1,3,1,2]
我需要這個與每個值之間的兩個0
值原始數組中格式化爲一個新的數組,並在最後,使第一行結束這樣的:
[3,0,0,3,0,0,3,0,0,2,0,0,1,0,0,2,0,0,2,0,0,3,0,0,1,0,0,3,0,0,1,0,0,2,0,0]
找遍了周圍類似的例子,發現一些接近,但我無法弄清楚如何使它在每一個步驟讀取原始數組正確的值for循環:
Dim Resp As Integer
Dim Ques As Integer
Resp = 200
Ques = 12
Dim Answers() As Integer
ReDim Answers(1 to Resp, 1 to Ques) As Integer
Dim lastIndex As Integer
lastIndex = Ques * 3
Dim Answers_Long() As Integer
ReDim Answers_Long(1 To Resp, 1 To lastIndex) As Integer
For r = 1 To Resp
For i = 1 To lastIndex Step 3
Answers_Long(r, i) = Answers(r, CInt(i/3))
Answers_Long(r, i + 1) = 0
Answers_Long(r, i + 2) = 0
Next i
Next r
如果你對我如何可以改變行任何提示:
Answers_Long(r, i) = Answers(r, CInt(i/3))
正確讀取從Answers()
這將是非常讚賞的數據。
我認爲這個問題通過使用已經解決Application.WorksheetFunction.RoundUp()函數。 – Braitaq