使用VBA求解六个未知数之和

2025-12-06 13:13:19

1、看这一要求解的方程,就觉得它类似于选择出6个不重复的数进行组合,之后再相加并判断,程序的思路也就出来了。

2、打开Excel表格之后,点击【开发工具】,【Visual Basic】打开VBA编辑器。

使用VBA求解六个未知数之和

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

使用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

使用VBA求解六个未知数之和

5、在程序里面,主要是在理解不重复的组数组合的基础上对For和If的嵌套使用,求解的工作任务就交给计算机和程序去判断处理。

6、点击VBA编辑器工具栏里面的运行图标运行程序,稍等一分钟左右即可在A:F列看到计算结果。

使用VBA求解六个未知数之和

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

使用VBA求解六个未知数之和

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢