私はここ数ヶ月間、以下のコードをうまく使っています。しかし、ワークシートのダイナミックレンジを選択しているため、ワークシートにない場合は、選択メソッドのクラスクラスが失敗してしまったことがわかりました。withループvbaで動的行を選択しないようにする方法
次のコードが失敗した:
With w.Sheets("Sheet1")
n = .Cells(Rows.Count, 2).End(xlUp).Row
.Range("Y2:AI2").Copy
.Cells(n, 25).Select
.Range(Selection, Selection.End(xlUp).Offset(1, 0)).PasteSpecial xlPasteFormulas
.Application.CutCopyMode = False
End With
次のコードは成功します
With w.Sheets("Sheet1")
n = .Cells(Rows.Count, 2).End(xlUp).Row
.Range("Y2:AI2").Copy
Sheets("Sheet1").Select
.Cells(n, 25).Select
.Range(Selection, Selection.End(xlUp).Offset(1, 0)).PasteSpecial xlPasteFormulas
.Application.CutCopyMode = False
End With
私は再びシートを選択する必要があります。理想的には私は選択/アクティブ化を避けたい!
右手のステアリングは大変ありがとう!
を試してみてください、あなたが実際にその細胞シートに_be_する必要があると思いれる '.Cells(nは、25).Select'書によるものです。しかし、あなたはそのセルを選択する必要はありません:私の答えを参照 – user3598756
実際には、 '.Select'の使用が必須であるケースはほとんどありません。 [Excelマクロでの選択の使用を避ける方法](http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)を参照してください。 –