|
▼マナ さん:
>▼NANAMI さん:
>>
>>for nextとsumifsを使って作りたいのです
>
>Worksheets("練習15")では、ループ必要ないでしょう。
>
>Sub test()
> Dim r1 As Range
> Dim r2 As Range
> Dim i As Long
> Dim j As Long
>
> Set r1 = Worksheets("練習15").Range("A1").CurrentRegion
> Set r2 = Worksheets("練習15_回答").Range("A1").CurrentRegion
>
> For i = 2 To r2.Rows.Count
> For j = 2 To r2.Columns.Count
> r2(i, j).Value = WorksheetFunction.SumIfs(r1.Columns(3), _
> r1.Columns(1), r2(1, j).Value, r1.Columns(2), r2(i, 1).Value)
> Next
> Next
>
>End Sub
>
>数式を一括で挿入して、それを値に変換すると
>ープなしでできます。
>
>Sub test2()
> Dim r1 As Range
> Dim r2 As Range
> Dim f As String
>
> Set r1 = Worksheets("練習15").Range("A1").CurrentRegion
> Set r2 = Worksheets("練習15_回答").Range("A1").CurrentRegion
> Set r2 = Intersect(r2, r2.Offset(1, 1))
>
> f = "=sumifs(" _
> & r1.Columns(3).Address(-1, -1, , -1) & "," _
> & r1.Columns(1).Address(-1, -1, , -1) & "," _
> & r2(0, 1).Address(-1, 0) & "," _
> & r1.Columns(2).Address(-1, -1, , -1) & "," _
> & r2(1, 0).Address(0, -1) & ")"
>
> r2.Formula = f
> r2.Value = r2.Value
>
>End Sub
sumifsを使ったVBA、とてもわかりやすかったです。理解できました。ありがとうございました。
|
|