A列中从A1到A20分别为数字1-20
B1为100,为计算的结果(6个数的和)
现在计算A列中哪6个数字的和为100
符合条件的就放在C列中
Sub
CountTotal()
Application.ScreenUpdating = False
Range("c:c").ClearContents
Dim a%, b%, c%, d%
Dim e%, f%
Dim x%, tmp As String, K, totalco As Integer
Dim dic
Set dic = CreateObject("scripting.dictionary")
x = Range("a65536").End(xlUp).Row
For a = 1 To x
- 5
Next
totalco = dic.Count
'K = dic.keys
'For x = 0 To totalco - 1
'Cells(x + 1, 3) = K(x)
'Next
[C1].Resize(dic.Count, 1) = Application.Transpose(dic.keys)
'这个语句也可以用上面四句来完成
MsgBox "共有" & totalco &
"条符合记录的!"
Application.ScreenUpdating = True
End Sub
自己感觉这样的算法速度似乎比较慢
慢慢再琢磨有没有快点的算法
如果A列中的数字越多,算起来就越慢了。
类似的过程别人早就有了,只是人家用别的算法(自己写的看得明白,别人写的看起来好费劲
)
本文介绍了一个VBA宏解决方案,用于在Excel中找出A列中任意六组数字之和等于100的情况,并将符合条件的组合记录在C列。此算法适用于数据量较小的场景,对于大量数据可能存在效率问题。
846

被折叠的 条评论
为什么被折叠?



