使用VBA求解六个未知数之和
1、看这一要求解的方程,就觉得它类似于选择出6个不重复的数进行组合,之后再相加并判断,程序的思路也就出来了。
2、打开Excel表格之后,点击【开发工具】,【Visual Basic】打开VBA编辑器。

3、在VBA编辑器的菜单栏上面点击【插入】,【模块】。

4、在程序代码框里面输入以下程序:
Sub Qiujie()
Dim i1, i2, i3, i4, i5, i6 As Long
Application.ScreenUpdating = False '关闭Excel表格屏幕刷新,提高运行速度
On Error Resume Next '忽略运行过程中出现的错误
m = 1 '将m的初始值设为1
Set mysheet1 = ThisWorkbook.Worksheets("Sheet1") '工作表定义
mysheet1.Range("A:F").Clear '清空A:F列
For i1 = 1 To 28 '第一个数值只能到第28个位置,即:33-6+1
For i2 = 1 To 29 '第二个数值只能到第29个位置,即:33-6+2
For i3 = 1 To 30 '第三个数值只能到第30个位置,即:33-6+3
For i4 = 1 To 31 '第三个数值只能到第31个位置,即:33-6+4
For i5 = 1 To 32 '第三个数值只能到第32个位置,即:33-6+5
For i6 = 1 To 33 '第三个数值只能到第33个位置,即:33-6+6
If i2 > i1 Then '选择的单元格需要大于i1
If i3 > i2 Then '选择的单元格需要大于i2
If i4 > i3 Then '选择的单元格需要大于i3
If i5 > i4 Then '选择的单元格需要大于i4
If i6 > i5 Then '选择的单元格需要大于i5
If i1 + i2 + i3 + i4 + i5 + i6 = mysheet1.Cells(1, 9) Then
'如果相加的值与I1单元格里面的值相等,则执行
m = m + 1 '从第二行开始进行填充
mysheet1.Cells(m, 1) = i1
mysheet1.Cells(m, 2) = i2
mysheet1.Cells(m, 3) = i3
mysheet1.Cells(m, 4) = i4
mysheet1.Cells(m, 5) = i5
mysheet1.Cells(m, 6) = i6
End If
End If
End If
End If
End If
End If
Next
Next
Next
Next
Next
Next
Application.ScreenUpdating = True '恢复Excel表格结果显示
End Sub

5、在程序里面,主要是在理解不重复的组数组合的基础上对For和If的嵌套使用,求解的工作任务就交给计算机和程序去判断处理。
6、点击VBA编辑器工具栏里面的运行图标运行程序,稍等一分钟左右即可在A:F列看到计算结果。

7、i1~i6的值已经被求解出来。
