2017-05-15 2 views
0

Ich habe derzeit Code, der den Wert einer Zelle dividiert durch eine andere berechnet und es funktioniert richtig.VBA Eingabe einer dynamischen Formel statt nur eines Wertes

Wie würde ich es ändern, so dass es die Formel dieser Zelle über die andere haben würde, und daher den Wert aktualisieren, den ich berechne, wenn die zwei Zellen Werte ändern? z.B. anstelle von "12" wäre es "B4/D8".

Der Code ist

For Tenant 1 to y 
For Schedule = 1 To x 

Sheet1.Cells(1782 + Tenant, 5 + x + Schedule).Value = (Sheet1.Cells(1782 + 
Tenant, 5 + Schedule).Value * Sheet1.Cells(1778, 8 + Schedule).Value) 

Next Schedule 
Next Tenant 

Antwort

0

du außerhalb einer Schleife tun, aber hier ist eine einfache Konvertierung Ihrer vorhandenen Code verwenden:

For Tenant 1 to y 
For Schedule = 1 To x 

Sheet1.Cells(1782 + Tenant, 5 + x + Schedule).Formula = "=('" & Sheet1.Name & "'!" & Sheet1.Cells(1782 + 
Tenant, 5 + Schedule).Address(0, 0) & "*'" & Sheet1.Name & "'!" & Sheet1.Cells(1778, 8 + Schedule).Address(0, 0) & ")" 

Next Schedule 
Next Tenant 
+0

Dank! Ist es besser, diese Funktion außerhalb einer Schleife auszuführen? – jabezs09