如何执行一个while循环,将公式保存在单元格中并应用到整行中? 高强

我试图用Excel和Visual Basic创build一个macros,我可以在一个单元格和另一个单元格之间添加一个公式。 我需要执行此添加,直到公式单元格达到0。

比方说,如果:

C2 = 10,000
H2(配方)= -40,000

我必须从H2增加40,000到C2,所以我可以得到50,000和H2达到0.H2将由于其公式而达到0。

我试图做到这一点是通过使用While循环。 但是,这个循环卡在无限的,我的H2细胞也失去了它的公式。

这是我的代码:

Dim n1 As Double Dim n2 As Double Private Sub Worksheet_SelectionChange(ByVal Target As Range) n1 = Cells(2, 8).Value n2 = Cells(2, 3).Value Do While n1 <> 0 n2 = n2 + (n1 * -1) Cells(2, 3).Value = n2 n1 = Cells(2, 8).Value Loop End Sub 

另外,我需要应用这种非常相同的方法,但是在C和H的每一行都有一个值。

希望这是你正在寻找…

 Dim n1 As Double Dim n2 As Double Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim lastrow, i As Variant lastrow = Range("C" & Rows.Count).End(xlUp).Row For i = 2 To lastrow n1 = Cells(i, 8).Value n2 = Cells(i, 3).Value Do While n1 <> 0 n2 = n2 + (n1 * -1) Cells(i, 3).Value = n2 n1 = Cells(i, 8).Value Loop Next i End Sub