即使用户输入不同的数字,结果显示0?

时间:2016-11-25 07:40:27

标签: vba

所以,我在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
道歉,其中一些词语是拉脱维亚语,但并不重要。它只是要求输入每个数组的编号。

1 个答案:

答案 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) & ArgNext Y之间添加Next X。因此,每次内部循环结束时,都会在字符串中添加换行符。