|
▼komoro さん:
クウガでございます。
私は、Select したり、Copy Paste したりするのは、
できるだけ、省いたほうがいいかと思いますので、
>Sub test()
>Sheets("Sheet1").Select
>Range("J2") = 1
ここは、Sheets("Sheet1").Select する必要は無いと思いますので、
Sheets("Sheet1").Range("J2") = 1
でいいのではないのでしょうか。
>
> AA = 3
>
>For i = 1 To 10
> Sheets("Sheet2").Activate
> Cells(AA, 1).Select
ここは、いりません。
>If Sheets("Sheet2").Cells(AA, 1) > 0 Then
> Sheets("Sheet1").Range("H2") = Sheets("Sheet2").Cells(AA, 1)
> Sheets("Sheet2").Cells(AA, 2).Copy
> Sheets("Sheet1").Activate
> Range("I2").Select
> Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
> False, Transpose:=False
> Application.CutCopyMode = False
> Range("A1").Select
ここは、
Sheets("Sheet1").Range("I2") = Sheets("Sheet2").Cells(AA, 2)
で、よろしいのでは?
> Sheets(1).Range("A3:D20").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
> Range("H1:J2"), CopyToRange:=Range("F3:I3"), Unique:=False
> Sheets("Sheet1").Range("K2").Copy
> Sheets("Sheet2").Activate
> Cells(AA, 3).Select
> Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
> False, Transpose:=False
ここも、
Sheets("Sheet2").Cells(AA, 3) = Sheets("Sheet1").Range("K2")
で、よろしいのでは?
> End If
> AA = AA + 1
> Next
>End Sub
あと、With を使った場合、省けるところは省けますので、
使った方がいいかと思います。
Sheets("Sheet1").Range("I2") = Sheets("Sheet2").Cells(AA, 2)
Sheets("Sheet2").Cells(AA, 3) = Sheets("Sheet1").Range("K2")
With Sheets("Sheet2")
Sheets("Sheet1").Range("I2") = .Cells(AA, 2)
.Cells(AA, 3) = Sheets("Sheet1").Range("K2")
End With
先に、Sheets("Sheet1")を Activate にしておけば、
Sheets("Sheet1").Activate
With Sheets("Sheet2")
Range("I2") = .Cells(AA, 2)
.Cells(AA, 3) = Range("K2")
End With
に、なります。
最初から、よーく目を通していけば、
この Selectは、必要かな?とか、省ける所は出てくると思いますので、
色々考えてみてください。
|
|