2016-11-25 78 views
0

所以,我在VBA中創建一個數組,我必須創建一個二維數組。結果顯示0即使用戶輸入不同的數字?

一切似乎工作正常,但結果顯示0,即使我想讓他們顯示用戶已經放置的結果。

下面的代碼:

Public Sub Masiivs() 

    Dim Arr(5, 5) As Integer 
    Dim Arg As String 
    Dim X, Y As Integer 
    Dim Rezult As String 
    Dim I, J As Long 
    Y = 1 

     While Y < 26 
      X = InputBox("Ievadiet masīva skaitļus Nr. " + CStr(Y), "Datu Ievade") 
      Y = Y + 1 
     Wend 

    For I = LBound(Arr) To UBound(Arr) 
     Arg = Arg + " " + CStr(Arr(I, I)) 

    Next I 

    MsgBox Arg 

End Sub 

道歉,有些詞在拉脫維亞語,但它不是那麼重要。它只是要求輸入每個陣列的號碼。

+0

至少有2個問題。 1)你不會把'X'分配到'Arr'中的一個槽中。 2)如果你做了(1)你仍然不會在兩個維度上重複「Arr」。 –

+1

那麼,首先你從不在數組中寫任何東西......然後你只輸出數組的對角項的和。 –

+0

@RobinMackenzie所以我應該改變我的Arr(我,我)到Arr(X,X)或者什麼?謝謝。 – Arthur

回答

1

你永遠不會將值存儲在你的數組中,所以它們永遠不會被保存。嘗試是這樣的:

Dim X As Integer, Y As Integer 
Dim Arr(5, 5) As Integer 
Dim Arg As String 

'Loop through the first dimenion of Arr 
For X = LBound(Arr, 1) To UBound(Arr, 1) Step 1 

    'Loop thourgh the second dimension of Arr 
    For Y = LBound(Arr, 2) To UBound(Arr, 2) Step 1 

     'Ask for Input and save it at current position 
     Arr(X, Y) = InputBox("Ievadiet masiva skaitlus Nr. " + CStr(Y), "Datu Ievade") 
     'add value to Arg 
     Arg = Arg & Arr(X, Y) 
    Next Y 
Next X 

MsgBox Arg 

編輯: 要添加空格的消息框,更改行:Arg = Arg & Arr(X, Y)Arg = Arg & " " & Arr(X, Y)。輸出將如下所示:1 2 3 4。切斷前導空格,使用Trim()Arg = Trim(Arg)

到每個第五元素後面輸入一個空格,Next YNext X之間添加Arg = Chr(10) & Arg。因此,每當內部循環結束時,您都會向該字符串添加換行符。

+0

謝謝,這似乎給我的用戶輸入的結果,但我怎樣才能在每個輸入之間留出空間,並在每個第5個數組輸入後將它們放入一個新行? – Arthur

+0

@Arthur將'Arg = Arg&「」&Arr(X,Y)'移到'Next Y'行後面 –

+0

@ShaiRado這似乎很奏效。現在唯一剩下的就是每隔5次輸入一個新行。我怎樣才能做到這一點?爲這麼多簡單的問題道歉。 – Arthur

相關問題