excel - 如何通过 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...
解决方案
你不需要为此循环。由于整个数据相同,您可以一次编写完整的矩阵。
此外,由于它不返回任何内容,因此它应该是过程 ( 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
推荐阅读
- javascript - 在这段代码中,我如何使用 FOR 循环一次访问两个或多个属性?
- javascript - 如何切换按钮?
- c# - 执行Restsharp后如何填充嵌套的简单数组类型json?
- debugging - 如何在 Dymola 中查看 Modelica 模型的非线性方程?
- reactjs - 不应显示相同 url 的导航提示对话框
- python - Seaborn KDEPlot - 数据变化不够?
- python-3.x - Python:递归方法是类方法时返回不同的结果
- angular - Angular 使用 Apollo:单元测试:错误:尚未定义客户端
- deep-learning - 如何使用语言建模方法生成数据序列?
- ruby - 如何使用 ruby 脚本将单个 json 字符串插入到 elasticsearch