作业帮 > 数学 > 作业

vba 对于一组数,列名为 1 2 3.如下1 2 3 5 3 85 9 68 6 9 2 1 9 9 5 3每一行取一

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/07/17 23:57:32
vba
对于一组数,列名为 1 2 3.如下
1 2 3
5 3 8
5 9 6
8 6 9
2 1 9
9 5 3
每一行取一个数相乘.如 5x5x8x2x9=3600.一共有3的5次方种方法.得到243个得数.把每
个得数作为x代进公式
y=x/2+2000中.若y>3000,则输出x,y以及 相乘出x的数的行号.如例子中的到的x=3600,
y=3800,相乘出x的数的列号为 11111.求在VBA中的实现
程序要做到完美!
----------------------
Public Sub aa()
Dim i%, j%, k%, l%, m%, x#, y#, r&
With ActiveSheet
Dim Rg As Range: Set Rg = .Range("E1") '放置结果的开始位置
.Range(Rg, .Cells(65535, Rg.Column + 2)).Clear
For i = 1 To 3
For j = 1 To 3
For k = 1 To 3
For l = 1 To 3
For m = 1 To 3
x = .Cells(1, i) * .Cells(2, j) * _
.Cells(3, k) * .Cells(4, l) * .Cells(5, m)
y = x / 2 + 2000
If y > 3000 Then
Rg.Offset(r, 0).Value = x
Rg.Offset(r, 1).Value = y
Rg.Offset(r, 2).Value = i & j & k & l & m & n
r = r + 1
End If
Next m, l, k, j, i
End With
With Rg.Resize(r, 3)
.EntireColumn.AutoFit
.Interior.ColorIndex = 36
.Font.ColorIndex = 3
.Borders.LineStyle = xlContinuous
End With
MsgBox "完成!" & vbCrLf & "共有 " & r & " 个组合符合条件."
End Su