2017-11-08 20 views
0

Excelで選択した範囲の行を通過するループをbcreateしようとしていますが、各行にスコアが出力されていますが、 forループの破線(VARIABLE1を設定) .Range( "A")を "A2"に置き換えると、出力が得られますが、最初の行だけが自然に出力されます。コードが各行をループするようにするにはどうすればよいですか? コード:Excel VBAルーピング行が機能しません。実行時エラー '1004'

Dim rng As Range 
Dim Final_risk_score 
Set rng = Worksheets("sheet name").Range("A1:Z100") 

For Each Row In rng.Rows 
    VARIABLE1 = Worksheets("sheet name").Range("A") 
    VARIABLE2 = Worksheets("sheet name").Range("K") 
    VARIABLE3 = Worksheets("sheet name").Range("J") 
    VARIABLE4 = Worksheets("sheet name").Range("W") 
    VARIABLE5 = Worksheets("sheet name").Range("G") 
    VARIABLE6 = Worksheets("sheet name").Range("N") 
    VARIABLE7 = Worksheets("sheet name").Range("X") 
    VARIABLE8 = Worksheets("sheet name").Range("Y") 
    VARIABLE9 = Worksheets("sheet2").Range("N7") 

    Final_score = Score_calculations(VARIABLE1, VARIABLE2, VARIABLE3, VARIABLE4, VARIABLE5, VARIABLE6, VARIABLE7, VARIABLE8, VARIABLE9) 
    Worksheets("sheet name").Range("Z").Value = Final_score 
Next Row 
+0

エラー1004とは何ですか?何を試しましたか? – nicomp

+0

'Range'は' 'A ''以上のものが必要です。 '' A1 "' – braX

+0

のようなものが必要です。あなたの答えは@ScottCranerです!これは今動作します! –

答えて

1

変更これまでループ:

Dim myRow As Range 
For Each myRow In rng.Rows 
    With Worksheets("sheet name") 

     VARIABLE1 = .Range("A" & myRow.Row) 
     VARIABLE2 = .Range("K" & myRow.Row) 
     'etc 
    End With 
Next Row 

したがって、限り、あなたが正しく範囲を参照しているとして、働くだろう。

2

最初に行を変数として使用しないでください。 Rwのようなものを使用してください。すべての範囲のためにそれを行う

.Cells(Rw.Row,"A") 

その後に.Range("A")を変更します。範囲には行が添付されている必要があります。

あなたも行うことができます:

.Range("A" & Rw.Row) 

ので:

Dim Rw as Range 
Dim rng As Range 
Dim Final_risk_score 
Set rng = Worksheets("sheet name").Range("A1:Z100") 

For Each Rw In rng.Rows 
    VARIABLE1 = Worksheets("sheet name").Cells(Rw.Row,"A") 
    VARIABLE2 = Worksheets("sheet name").Cells(Rw.Row,"K") 
    VARIABLE3 = Worksheets("sheet name").Cells(Rw.Row,"J") 
    VARIABLE4 = Worksheets("sheet name").Cells(Rw.Row,"W") 
    VARIABLE5 = Worksheets("sheet name").Cells(Rw.Row,"G") 
    VARIABLE6 = Worksheets("sheet name").Cells(Rw.Row,"N") 
    VARIABLE7 = Worksheets("sheet name").Cells(Rw.Row,"X") 
    VARIABLE8 = Worksheets("sheet name").Cells(Rw.Row,"Y") 
    VARIABLE9 = Worksheets("sheet2").Range("N7") 

    Final_risk_score= Score_calculations(VARIABLE1, VARIABLE2, VARIABLE3, VARIABLE4, VARIABLE5, VARIABLE6, VARIABLE7, VARIABLE8, VARIABLE9) 
    Worksheets("sheet name").Cells(Rw.Row,"Z").Value = Final_risk_score 
Next Row 
関連する問題