1

私は、Excel で VBA を初めて使用します... 1 行のデータしか返されない場合に計算に問題があるマクロを見ています (これにより、後続のすべての行に N/計算が引き下げられているため、A または #REF)

基本的に、私が探しているのは、行数を指定したある種のIF ステートメントを使用して、計算を停止するかどうかを決定することです。

現在、コードは次のようになっています。

Range("I7").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-2]=0,0,(RC[-1]/RC[-2])*10000)"
Range("I7").Select
Selection.Copy
Range("I8").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste

私がする必要があると思うのは、行数が 1 未満のものはプルダウンされず、それ以外の場合は列をプルダウンすることです。

私はこれに正しい方法で取り組んでいますか?もっと簡単な方法はありますか?

4

1 に答える 1

1

行数は必要ないと思います。7行目から最後に入力された行まで、列Iのすべてのセルに数式を適用するだけでよいと思います。私の例では、列 H の最後の行をチェックしています。

これを行う方法は次のとおりです。

Sub AddFormulaToColumn()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim rng As Range
    Dim lastRow As Long

    Set wb = ThisWorkbook
    Set ws = wb.Sheets("Sheet1")
    lastRow = Range("H" & ws.Rows.Count).End(xlUp).Row

    Set rng = ws.Range("I7:I" & lastRow)
    rng.Formula = "=IF(RC[-2]=0,0,(RC[-1]/RC[-2])*10000)"
End Sub

ws 定義を使用するシートに変更することでこれを変更できます。最後の行が「H」以外の列にある場合は、それも変更します。

于 2013-06-21T18:56:50.110 に答える