VBAの式を使用してデータの列と比較し、一致が見つかった場合は、あるシートから別のシートにデータを入力します。私は最初の行で数式を使用しましたが、これはうまくいく結果が得られます。これはレポート上の他の自動化の一部になるので、私はそれを自動化したいと思います。私は、列の見出しを入力して、全体の列にsumif関数を適用するいくつかのコードがありますが、私はすべての方法で同じ結果を得る、それは最初の行の結果です。vbaの式を使用してセルを比較し、結果を別のセルに入力する
コード
Sub ImportCosting()
Dim z As Workbook
Dim x As Workbook
Set x = Workbooks.Open("C:\Documents\Reports\MEP.xlsx")
With Workbooks("MEP")
Worksheets("DynamicReport").Range("P5").Value = "Budget"
Worksheets("DynamicReport").Range("Q5").Value = "Forecast"
End With
Set z = Workbooks.Open("C:\Documents\Reports\Budget.xlsx")
With x.Worksheets("DynamicReport")
lastRow = .Cells(Rows.Count, 5).End(xlUp).Row
For Each rng In .Range("P6:P" & lastRow)
rng.Formula = "=SUMIF('[Budget.xlsx]DynamicReport'!$C:$C,$B6,'[Budget.xlsx]DynamicReport'!H:H)"
rng.Value = rng.Value
Next rng
End With
End sub
希望私は問題を正しく説明しています。私が間違っていた場所と、それを得る方法を教えてもらえますか?sumif関数が各行に適用され、最初の行の結果は繰り返されません。
おかげ
下にしてみてくださいその行のsumif関数 – user3088476
で定義された、またはオブジェクト定義されたエラーを、6をrng.Rowに置き換えましたか? – newguy
いいえ、私はそれを加えなかったし、それは治療を働く。助けてくれてありがとう。 – user3088476