所以,我在VBA中制作一个数组,我必须制作一个二维数组。
一切似乎都运行良好,但结果显示为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 :(得分: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
编辑:
要在Messagebox中添加空格,请将行Arg = Arg & Arr(X, Y)
更改为Arg = Arg & " " & Arr(X, Y)
。输出将如下所示:1 2 3 4
。要切断前导空格,请使用Trim()
:Arg = Trim(Arg)
要在每五个元素后输入一个空格,请在Arg = Chr(10) & Arg
和Next Y
之间添加Next X
。因此,每次内部循环结束时,都会在字符串中添加换行符。