ROWカウントが1を超える場合、自動塗りつぶしを適用する最もきれいな方法は何ですか? 私は以下の行を使用しています。ただし、列「I」に1行しかカウントされていないインスタンスがある場合は、エラーが発生します。1行以上の自動塗りつぶしを適用しない他の場合は適用しない
Sheets(1).Range("J2").AutoFill Destination:=Range("J2:J" & Cells(Rows.Count, "I").End(xlUp).Row)
ROWカウントが1を超える場合、自動塗りつぶしを適用する最もきれいな方法は何ですか? 私は以下の行を使用しています。ただし、列「I」に1行しかカウントされていないインスタンスがある場合は、エラーが発生します。1行以上の自動塗りつぶしを適用しない他の場合は適用しない
Sheets(1).Range("J2").AutoFill Destination:=Range("J2:J" & Cells(Rows.Count, "I").End(xlUp).Row)
あなたは明示的にすべてのRange objectとRange.Cells propertiesためRange.Parentワークシートのプロパティを参照する必要があります。 ActiveSheet propertyへの暗黙の参照に依存することはできません。
with Sheets(1)
.Range("J2").AutoFill Destination:=.Range("J2:J" & .Cells(Rows.Count, "I").End(xlUp).Row)
end with
Range.FillDown methodのコードは簡単です。
with Sheets(1)
.Range("J2:J" & .Cells(Rows.Count, "I").End(xlUp).Row).FillDown
end with
With ... End With statementはプレフィックス期間(別名終止符または.
)を持っているすべての.Range
と.Cells
に親ワークシートの参照を渡します。
私はオートフィル機能を実行するためにコピー&ペースト方法を使用しています。 あなたの要求に応じて、値や数式として特別なペーストを使用することができます。これは自動塗りつぶしの別の方法です
Sub test11()
Dim L As Long
L = Sheets(1).Range("J1:J" & Sheets(1).Cells(Sheets(1).Rows.Count, "J").End(xlUp).Row).Count
With Sheets("Sheet1")
.Range("J1").Copy
' Change Range as per your requirement and paste function as per your requirement
.Range("J2:J" & L).PasteSpecial xlValues
End With
End Sub
'Range(" J1:J "&L)'は '.'を必要とするかもしれません。 – Jeeped
列 "I"で2以上の行数を処理しています。ただし、列I(ヘッダーを含まない)に1つのエントリしかない場合、このエラーは表示されます。 "Rangeクラスのオートフィルメソッドが失敗しました"。 –
あなたはJ2:J1の範囲をオートフィルしていますか? – Jeeped