2017-09-20 4 views
1

ExcelとVisual Basicを使用してマクロを作成しようとしています。ここでは、セルと数式を含む別のセルの間で加算を実行できます。whileループを実行して、セルに式を保持し、行全体に適用する方法? Excel

C2 =万
H2(式1)= -40000

私が持っている:私があれば、のは言わせて式電池は

0になるまで、この加算を実行する必要がありますH2からC2に40,000を加えて、私は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のすべての行に。これはあなたが探しているものである

+0

あなたはN2で何もしていません。そして、H2から来るn1をH2に割り当てて、H2に存在する数式を上書きします。そのコードは役に立ちません。あなたが達成しようとしていることは明確ではありません。 – teylyn

+0

私は、H2が0に達するまでC2を追加しようとしています。また、C2とH2の値がある行全体にこれを適用できます。 –

+0

H2の式は何ですか?私はまだ大きな写真が何で、なぜH2を0にするためにVBAを使いたいのか見ていません。これの目的は何ですか? – teylyn

答えて

1

希望...

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 
関連する問題