Найти комбинацию целевого значения, равного 0, VBA
Мне нужно найти комбинацию значений, которая будет иметь общую сумму, равную нулю в Excel. Решатель может предоставить решение для ненулевых значений. Однако это не работает, если целевое значение = 0. Не могли бы вы помочь мне в этом. Что я сделал: я пытался решить, но это неправильно, если мы используем целевой суммы = 0. Я использовал похожие коды, доступные в сети. Но получить же нет результатов.
2 ответа
Решение
Решатель не предоставит решение, если целевая сумма равна 0.
Мое решение:
1) найти сумму значений.
2) использовать сумму в качестве целевого значения.
3) Теперь решатель даст решение для целевого значения.
4) если вы отделите оставшиеся значения, вы получите комбинацию значений, сумма которых равна 0
Пытаться:
Option Explicit
Sub test()
Dim Target As Double, OpTarget As Double
Dim i As Long, j As Long, LastRow
With ThisWorkbook.Worksheets("Sheet1")
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
For i = 2 To LastRow
Target = .Range("A" & i).Value
OpTarget = "-" & Target
.Range("B" & i).Value = OpTarget
.Range("C" & i).Value = Application.WorksheetFunction.Sum(.Range("A" & i & ":B" & i))
Next i
End With
End Sub
Выход: