あるセル(今回は"D4")に値を貼り付けたとき、
①貼り付けた行(一行分)の枠線をコピーして、貼り付けた行数分ペースト
②貼り付けた行のAC列の値をコピーし、貼り付けた行数分(AC列に)ペースト
上記の処理をしたく、下記のようなコードを書いたのですが、
→ Range(Cells(startRow, 1), Cells(endRow, 1)).Paste
この箇所で、
エラー 438 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」
というエラーが発生します。
どのようなコードを書けばよいのでしょうか?
ご教授お願いします。
VBA
1Option Explicit 2 3Private Sub Worksheet_Change(ByVal Target As Range) 4 If Not Intersect(Target, Range("D4")) Is Nothing Then 5 6 Dim startRow As Long 7 Dim endRow As Long 8 9 '先頭行の取得 10 startRow = Selection(1).Row 11 '最終行の取得 12 endRow = Selection(Selection.Count).Row 13 14 '先頭行を選択範囲全体に貼付け 15 Call CopyRows(startRow, endRow) 16 17 End If 18 End Sub 19 20'コピー→ペースト 21Sub CopyRows(startRow As Long, endRow As Long) 22 23 '枠のみコピー 24 Rows(startRow).Copy 25 Rows(startRow + 1 & ":" & endRow).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ 26 SkipBlanks:=False, Transpose:=False 27 Application.CutCopyMode = False 28 29 '書式設定コピー 30 Range(Cells(startRow, 1), Cells(startRow, 3)).Copy 31 Range(Cells(startRow, 1), Cells(endRow, 1)).Paste 32 33 Range("A1").Select 34 35End Sub 36 37
あなたのなさりたいことがよくわかりません。
1.実行前のセルの状態
2.実行後のセルの状態
3.コピー元のセルの状態
上記が判るような画像を提示していただくと、良い回答が得られるかと。