多维数组作业

时间:2012-05-29 15:59:52

标签: forms function vba multidimensional-array

我有一个名为txtBox1的文本框,第二个名为txtbox2的文本框,一个Label和一个Button。我需要创建一个

的函数
  1. 接受2个整数参数并返回一个字符串。
  2. 根据这些参数中传递的整数创建一个二维数组。第一个整数参数表示txtbox1,第二个整数参数表示txtbox2。
  3. 使用嵌套for循环以从1
  4. 开始的递增值填充数组元素
  5. 作为循环结构的一部分,跟踪字符串变量中的所有元素值并用逗号分隔它们。例如,如果用户在txtbox1中输入3,在txtbox2中输入5并单击该按钮,我们将获得如下数组:

    :Length=15
    (0,0): 1    
    (0,1): 2
    (0,2): 3
    (0,3): 4
    (0,4): 5
    (1,0): 6
    (1,1): 7
    (1,2): 8
    (1,3): 9
    (1,4): 10 
    (2,0): 11
    (2,1): 12
    (2,2): 13
    (2,3): 14
    (2,4): 15    
    

    元素中填充的值为1,2,3,4,5,6,7,8,9,10,11,12,13,14和15。

  6. 传回的字符串格式为“数组为3 x 5,数组元素中的值为1,2,3,4,5,6,7,8,9,10,11,12, 13,14,15” 。
  7. 使用此字符串值填充Label。
  8. 这是我到目前为止所拥有的......

    Shared Function myArray(int1 As Integer, int2 As Integer) As String
    
        Dim Array(int1 - 1, int2 - 1) As Integer
        Dim i As Integer
        Dim j As Integer
        Dim counter As Integer = 1
    
        For i = 0 To int1 - 1
            For j = 0 To int2 - 1
                Array(i, j) = counter
                counter += 1
            Next
        Next
    
        Return Array(i, j)
    
    End Function
    

1 个答案:

答案 0 :(得分:0)

好的,所以你几乎拥有它。我假设你只被困在#4。如果我输入错误的语法,请原谅我,我没有在很长一段时间内完成VB,而是从内存中执行此操作。

让我们来看看你有什么:

For i as integer = 0 To int1 - 1
    For j as integer = 0 To int2 - 1
        Array(i, j) = counter
        counter += 1

在这里,您使用counter使用增量值填充数组。您可以在另一个字符串变量中使用此变量,只需在它们之间添加逗号:

首先:在顶部添加一个字符串变量:

Dim Array(int1 - 1, int2 - 1) As Integer
Dim i As Integer
Dim j As Integer
Dim counter As Integer = 1
Dim output as String = nothing

然后,在循环中使用该变量:

For i = 0 To int1 - 1
    For j = 0 To int2 - 1
        Array(i, j) = counter
        output += "" & counter & ", "
        counter += 1
    Next
Next

最后,将您的return更改为发送output而不是数组中的元素

return output

如果要格式化字符串以便不显示最后一个“,”,请查看Strings.Left函数。它会是这样的:

output = Left(output, Len(output) - 2) 'I am not sure if this is a 2 or 3, run and test

好的,希望有所帮助。随意请求澄清或其他什么。