Option Explicit
Sub test()
Dim count() As Variant, results As Variant, permutLen As Long, numLen As Long
Dim permutation As Variant, r As Variant, c As Long, numbers() As Variant
Dim result() As Variant, target As Double, minimumValue As Double, i As Integer
target = Range("G1").Value2
permutLen = Cells(Rows.count, 1).End(xlUp).Row
minimumValue = Application.WorksheetFunction.Min(Range("A1:A" & permutLen))
numbers = Range("A1:A" & permutLen)
For i = 0 To Int(target / minimumValue)
ReDim Preserve count(i)
count(i) = i
Next
numLen = UBound(count) + 1
permutation = numLen ^ permutLen
ReDim result(1 To permutLen, 1 To 1)
For r = 1 To permutation
For c = 1 To permutLen
result(c, 1) = count(Int((r - 1) / (permutation / (numLen ^ c))) Mod numLen)
Next
If mySumProduct(numbers, result) = target Then
Range("B1").Resize(permutLen) = result
Exit Sub
End If
Next
End Sub
Function mySumProduct(ByRef values() As Variant, ByRef quantity() As Variant) As Double
Dim i As Integer
For i = 1 To UBound(quantity)
mySumProduct = mySumProduct + (values(i, 1) * quantity(i, 1))
Next
End Function