使用VBA求解六个未知数之和
1、看这一要求解的方程,就觉得它类似于选择出6个不重复的数进行组合,之后再相加并判断,程序的思路也就出来了。
2、打开Excel表格之后,点击【开发工具】,【Visual Basic】打开VBA编辑器。
3、在VBA编辑器的菜单栏上面点击【插入】,【模块】。
4、在程序代码框里面输入以下程序:Sub Qiujie()Dim i1, i2, i3巳呀屋饔, i4, i5, i6 As LongApplication.ScreenUpdating = False '关闭Excel表格屏幕刷新,提高运行速度On Error Resume Next '忽略运行过程中出现的错误m = 1 '将m的初始值设为1Set 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 NextNextApplication.ScreenUpdating = True '恢复Excel表格结果显示End Sub
5、在程序里面,主要是在理解不重复的组数组合的基础上对For和If的嵌套使用,求解的工作任务就交给计算机和程序去判断处理。
6、点击VBA编辑器工具栏里面的运行图标运行程序,稍等一分钟左右即可在A:F列看到计算结果。
7、i1~i6的值已经被求解出来。