如果结果的总和等于总值,则搜索一些值

时间:2019-07-19 07:10:21

标签: excel vba

如果结果的总和等于总值,我想让一个应用程序搜索一些值。

只有在搜索2和3值时,应用程序才能正常运行。

超过3个Excel不会响应。

Private Sub cmdSearch_Click()
Dim a, b, c, d As Integer
Dim rng As Range
Set rng = Range("A1").CurrentRegion

Range("G2:G31").Value = ""

'searching 2
If Range("G2").Value = "" Then
    For a = 2 To rng.Count
    For b = a + 1 To rng.Count
        If rng.Cells(b) + rng.Cells(a) = Range("D2") Then
            Range("G2").Value = rng.Cells(a)
            Range("G3").Value = rng.Cells(b)
        End If
    Next b
    Next a
End If

'seraching 3
If Range("G2").Value = "" Then
        For a = 2 To rng.Count
        For b = a + 1 To rng.Count
        For c = b + 1 To rng.Count
            If rng.Cells(c) + rng.Cells(b) + rng.Cells(a) = Range("D2") Then
                Range("G2").Value = rng.Cells(a)
                Range("G3").Value = rng.Cells(b)
                Range("G4").Value = rng.Cells(c)
            End If
        Next c
        Next b
        Next a
End If

'searching 4
If Range("G2").Value = "" Then
        For a = 2 To rng.Count
        For b = a + 1 To rng.Count
        For c = b + 1 To rng.Count
        For d = c + 1 To rng.Count
            If rng.Cells(d) + rng.Cells(c) + rng.Cells(b) + rng.Cells(a) = Range("D2") Then
                Range("G2").Value = rng.Cells(a)
                Range("G3").Value = rng.Cells(b)
                Range("G4").Value = rng.Cells(c)
                Range("G5").Value = rng.Cells(d)
            End If
        Next d
        Next c
        Next b
        Next a
End If
End Sub

有人可以帮我做同样的事情,但是更简单吗?

非常感谢

0 个答案:

没有答案