首页 > 解决方案 > 如何通过 VBA 函数创建矩阵

问题描述

我需要使用 VBA 函数创建一个矩阵。

矩阵应该是大小应该是2(n-1)*2(n-1)n=1,2,3,... 它应该出现在哪里cells(i, j)

我找不到我的代码的问题。请帮我。

Function matrix(n, i, j)
    Do While n > 0
        For x = 0 To 2 * (n - 1)
            For y = 0 To 2 * (n - 1)
                Cells(i + x, j + y) = n
            Next
        Next
        matrix = n
    Loop
End Function

当n=1时,矩阵应该出现1(1*1)矩阵。
当n=2时,应该出现矩阵

222  
222   
222 (a 3*3 matrix)  

当n=3时,应该出现矩阵

33333  
33333   
33333 (a 5*5 matrix)  

ETC...

标签: excelvbafunction

解决方案


你不需要为此循环。由于整个数据相同,您可以一次编写完整的矩阵。

此外,由于它不返回任何内容,因此它应该是过程 ( Sub) 而不是函数。

Public Sub CreateMatrix(ByVal n As Long, ByVal i As Long, ByVal j As Long)
    Cells(i, j).Resize(1 + 2 * (n - 1), 1 + 2 * (n - 1)).Value = n
End Sub

'运行程序

Public Sub Test()
    'select the cell where you want the matrix to start then run this procedure 

    Dim n As Long
    n = Application.InputBox(Prompt:="Enter size of matrix n=", Title:="Create Matrix", Type:=1)

    If n > 0 Then
        CreateMatrix n, Selection.Row, Selection.Column
    End If
End If

推荐阅读