Function valzArrayExp(min As Double, max As Double, inc As Double)
Dim i As Double, num As Double
Dim TempArr As Variant
num = (max - min) / inc
ReDim TempArr(num)
i = 0
Do Until i = num + 1
TempArr(i) = min + inc * i
i = i + 1
Loop
valzArrayExp = TempArr
End Function
Sub array_elements_input_equation_Image()
Dim dValz, vValz, answers
Dim dElements As Double, vElements As Double
Dim i As Double, j As Double, k As Double
Dim A As Double, B As Double, C As Double, D As Double, E As Double, F As Double, G As Double
With Worksheets(1)
A = .Range("C7") ' value is 2
B = .Range("C8") ' value is 3
C = .Range("C10") ' value is 5
D = .Range("C11") ' value is 6
E = .Range("C9") ' value is 4
F = .Range("C6") ' value is 11
G = .Range("C12") ' value is 7
dValz = valzArrayExp(.Range("F9"), .Range("F8"), .Range("F10")) ' (0.0000005, 0.0000205, 0.000005)
vValz = valzArrayExp(.Range("F5"), .Range("F4"), .Range("F6")) ' (10 , 20, 5)
End With
dElements = UBound(dValz) + 1
vElements = UBound(vValz) + 1
ReDim answers(dElements * vElements - 1)
For i = 0 To dElements - 1
For j = 0 To vElements - 1
answers(k) = ((A - B) / (A + 2 * B)) * ((C * D ^ 2) / (3 * (WorksheetFunction.Pi) ^ 2 * E * dValz(i) * F ^ 2 * vValz(j)))
If Err Then ' an error is occuring for final 3 solutions
Err.Clear
answers(k) = 0
End If
k = k + 1
Next j
Next i
Range("R4").Resize(UBound(answers) + 1) = Application.Transpose(answers)
End Sub