方法二,
直接在EXCEL中利用 MS Query进行SQL语句的查询
假设sheet1中放两列, FD01列为序号,也确保不重复挑选同一数字。 FD02为这些数字
A
B
C
1
FD01
FD02
2
1
15.6
3
2
77.2
然后在QUERY中执行如下语句。(需要耐心,速度比较慢)
SELECT a.FD02,b.fd02,c.fd02
FROM `C:\temp\Book5`.`Sheet1$` as a,
`C:\temp\Book5`.`Sheet1$` as b,
`C:\temp\Book5`.`Sheet1$` as c
where a.fd01<b.fd01
and b.fd01<c.fd01
and a.FD02 + b.fd02 + c.fd02=768.68
Public Sub test()
Dim fArray() As Single
Dim nTotalNumberCnt As Integer
nTotalNumberCnt = Sheet1.UsedRange.Rows.Count
ReDim fArray(nTotalNumberCnt)
Dim i As Integer
Dim j As Integer
Dim k As Integer
For i = 1 To nTotalNumberCnt
fArray(i) = Sheet1.Cells(i, 1).Value
Next i
Dim fSum As Single
fSum = 768.68
Debug.Print "begin ......"
For i = 1 To nTotalNumberCnt - 2
For j = i + 1 To nTotalNumberCnt - 1
For k = j + 1 To nTotalNumberCnt
If fArray(i) + fArray(j) + fArray(k) = fSum Then
Debug.Print i; fArray(i), j; fArray(j), k; fArray(k)
End If
Next k
Next j
Next i