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

来源:人气:9更新:2024-07-22 06:00:22

求解的方程需满足 i1 i2 i3 i4 i5 i6 = I1(I1取自单元格I1,如100),其中i1至i6为1到33的唯一正整数,且每个变量值互不相同。此问题可通过VBA编程逐一判断并求得各变量的解。

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

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

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

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

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

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

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

Copyright © 2008-2024