作业帮 > 综合 > 作业

求助,excel中,在一组数字当中挑选出指定个数的数字,让他们之和等于指定的数.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/05 08:16:17
求助,excel中,在一组数字当中挑选出指定个数的数字,让他们之和等于指定的数.
求助,在一组数字当中挑选出指定个数的数字,让他们之和等于指定的数.
例如:给出一组数,个数不定.给出另一个常数A,其值等于前一组数里指定个数之和.要求在数组里挑出其和等于A的那几个数.
例如:
数组:1,2,5,6 常数A为9,要求选3个数,使其和等于9
结果为1,2,6
注意:数组中数的个数不定,但是知道有几个数相加等于A.
希望哪位高人能给出VBA的程序,万分感谢.
Sub chiefzjh()
On Error Resume Next
Dim mSour As Range '数据区域
Dim Tar%,n '目标值 / 分解个数
Dim C1%,C2%,C3%,Rslt,t%
Tar = 15:n = 3 'xxxxxx 目标值、分解个数设定
Set mSour = Range("a1:d10") 'xxxxxx 数据源设定
Set Rslt = CreateObject("scripting.dictionary")
t = mSour.Cells.Count
If t < n Then Exit Sub:MsgBox "Wrong!"
For C1 = 1 To t - 2
For C2 = C1 + 1 To t - 1
For C3 = C2 + 1 To t
If mSour(C1) + mSour(C2) + mSour(C3) = Tar Then
Rslt.Add mSour(C1) & "," & mSour(C2) & "," & mSour(C3),""
End If
Next C3
Next C2
Next C1
MsgBox Join(Rslt.keys,vbCrLf),,Tar & " = sum of:"
End Sub
再问: 请问如何将运算结果输出?我数据比较多,可能有几千个