プロが教えるわが家の防犯対策術!

画像の通りにマクロでO列を基準にして上の行をコピーするコードを
教えてもらいましたがこれを別シート(入力シート)から実行したいんですけれども
どのようにしたらいいでしょうか


Sub 空白の行の上をコピーする()
Const START_COLUMN = 1 'A列
Const END_COLUMN = 14

Dim lastRow As Long
lastRow = Cells(Rows.Count, "O").End(xlUp).Row 'O列の最終行を取得

Dim i As Long
For i = 1 To lastRow
If Cells(i, START_COLUMN) = "" Then
Range(Cells(i, START_COLUMN), Cells(i, END_COLUMN)).Value = Range(Cells(i, START_COLUMN).Offset(-1, 0), Cells(i, END_COLUMN).Offset(-1, 0)).Value
End If
Next

End Sub

「マクロについて」の質問画像

A 回答 (2件)

CellsとかRangeで、シートを明示します。


普段からそうしないと、どこかで失敗します。
(2シートを使う例)

Dim WS1 As Worksheet ←WS1はシート名として使います、と宣言
Dim WS2 As Worksheet ←WS2はシート名として使います、と宣言

Set WS1 = Worksheets("Sheet1") ←WS1に実際のシート名を割り当てす。
Set WS2 = Worksheets("Sheet2") ←WS2に実際のシート名を割り当て


WS1.Cells(・・・・
WS1.Range(・・・・
の様に、シート名を明示しながら使います。
    • good
    • 0
この回答へのお礼

有難うございます。
マクロ初心者で質問を繰り返しながら作っていますので参考になります

お礼日時:2023/10/20 17:05

このシートのシート名は何でしょうか。


シート名を指定して処理をするようにすれば、実現可能です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A