用excelvba实现do-while循环生成乘法表
我试图用“do while loop”做二维动态乘法表,但我只能得到一行,有人能帮我吗?我需要使用do while循环,而不是另一个循环用excelvba实现do-while循环生成乘法表,excel,matrix-multiplication,vba,Excel,Matrix Multiplication,Vba,我试图用“do while loop”做二维动态乘法表,但我只能得到一行,有人能帮我吗?我需要使用do while循环,而不是另一个循环 Sub multp_doWhileLoop() Dim i As Long Dim j As Long Dim k As Long Dim l As Long k = Range("b1").Value l = Range("d1").Value ReDim multp_tab(k, l) As Long 'defining ixj matrix i = 1
Sub multp_doWhileLoop()
Dim i As Long
Dim j As Long
Dim k As Long
Dim l As Long
k = Range("b1").Value
l = Range("d1").Value
ReDim multp_tab(k, l) As Long 'defining ixj matrix
i = 1
j = 1
Range("a2:zz100000").Clear
Cells(2, 1) = "mult."
Do While i < k + 1
Do While j < l + 1
Cells(i + 2, 1).Value = i 'for frame
Cells(2, j + 1).Value = j '
multp_tab(i, j) = i * j
j = j + 1
Loop
i = i + 1
Loop
i = 1
j = 1
Do While i < k + 1
Do While j < l + 1
Cells(i + 2, j + 1).Value = multp_tab(i, j)
j = j + 1
Loop
i = i + 1
Loop
End Sub
Sub-multp_-doWhileLoop()
我想我会坚持多久
Dim j尽可能长
暗k一样长
我和你一样长
k=范围(“b1”).值
l=范围(“d1”).值
将多个制表符(k,l)重编为长“定义ixj矩阵”
i=1
j=1
范围(“a2:zz100000”)。清除
单元(2,1)=“多个”
当我
请告诉我,我不会帮助你考试作弊
Sub multp_doWhileLoop()
' 09 Apr 2017
Dim Mtbl As Variant ' Multiplication table
Dim R As Long ' row
Dim C As Long ' column
Dim Rmax As Long ' try to give meaning to the names
Dim Cmax As Long ' you give to your variables
With ActiveSheet
Rmax = .Cells(1, "B").Value
Cmax = .Cells(1, "D").Value
If Rmax < 1 Or Cmax < 1 Then
MsgBox "Please enter valid parameters in row 1.", _
vbExclamation, "Invalid matrix parameters"
Exit Sub
End If
ReDim Mtbl(1 To Rmax, 1 To Cmax) 'defining ixj matrix
Do
R = R + 1
C = 0
Do
C = C + 1
Mtbl(R, C) = R * C
Loop While C < Cmax
Loop While R < Rmax
With .UsedRange
.Range(.Cells(2, 1), .Cells(.Rows.Count, .Columns.Count)).ClearContents
End With
.Cells(2, 1).Resize(Rmax, Cmax).Value = Mtbl
End With
End Sub
Sub-multp_-doWhileLoop()
2017年4月9日
Dim Mtbl作为变量的乘法表
变暗R为长“行
尺寸C为“长”列
Dim Rmax,只要“尝试赋予名称含义”
只要你给你的变量赋值,就调暗Cmax
使用ActiveSheet
Rmax=.Cells(1,“B”).值
Cmax=.Cells(1,“D”).值
如果Rmax<1或Cmax<1,则
MsgBox“请在第1行中输入有效参数。”_
vb感叹号,“无效的矩阵参数”
出口接头
如果结束
ReDim Mtbl(1到Rmax,1到Cmax)“定义ixj矩阵
做
R=R+1
C=0
做
C=C+1
Mtbl(R,C)=R*C
当C
以下是一个简短的解决方案:
Sub multp()
For c = 1 To 10
For r = 1 To 10
ThisWorkbook.Sheets("sheet1").Cells(r, c).Value = r * c
Next r
Next c
End Sub
不,不是为了我的考试。我正在尝试理解其他有同样问题的循环。我用for循环做过,但这次做不了。谢谢你的帮助。