[[20200307184747]] 『VBA指定した列の2行目からのデータをクリア』(がんつ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBA指定した列の2行目からのデータをクリア』(がんつ)

指定した列の2行目以降をデータクリアをしたいため、下記のVBAを
記述しましたが、

Sub データ消去()
Sheets("データ").Range("B1:G1", "M1:R1").Rows("2:" & Rows.Count).Clear
End Sub

HからLの2列以降までデータがクリアされてしまいます
あくまでB〜Gの2列目以降とM〜Rの2列目以降をクリアしたいです
教えていただきますと、助かります

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 こんばんは!
 >Range("B1:G1", "M1:R1").
 欲張りなひとですねぇ(^^;

 それぞれ行もちがうでしょうから、、わけないといけないと思いますよ?

 範囲の選択方法は色々あって長年書いてても悩むところではありますよね???

 先ずは、手作業でCtrl+↑とか 
 機種によって違いますが、、Shift+* とか
 を記録してそのコードを改良するところから始められるといいと思います。

 最近コードを書かなくなったSoulManちゃん(^^;

 頑張って下さいね。。。では、、、では、、、
(SoulMan) 2020/03/07(土) 19:34

 読み返すと、、ちょっと不親切なので付け加えると、、、
 範囲の選択は、レイアウトに大きく左右されるのですね。。多分、、、

 なので先ずは手作業でその範囲を指定してみて、そのコードを記録して加工してみては?
 という提案でした。

 では、、では、、
(SoulMan) 2020/03/07(土) 19:46

 こんばんは ^^
 SoulMan さん のアドバイスをうけて。。。書いてみました。
 行数は同じと仮定してですが、こんな感じで よろしいでしょう
 か。 ←コード 書くことだけが楽しみな老人 ^^; 。。。m(_ _)m
 Option Explicit
 Sub データ消去()
    Dim r As Range
    Dim rr As Range
    With Sheets("データ")
        Set r = Intersect(.Range("B:G"), .Rows("2:" & .UsedRange.Rows.Count + 1))
        Set rr = Intersect(.Range("M:R"), .Rows("2:" & .UsedRange.Rows.Count + 1))
        Union(r, rr).Select
    End With
 End Sub
(隠居じーさん) 2020/03/07(土) 19:56

こんな感じでは
    With Sheets("データ")
        Intersect(.Range("B:G, M:R"), .Rows("2:" & Rows.Count)).Clear
    End With

(マナ) 2020/03/07(土) 20:00


こんばんは ^^
なるほど。。。です。とても勉強になります。
お邪魔致しました。m(_ _)m

(隠居じーさん) 2020/03/07(土) 20:12


 いいとこ取りするとか、、
With Sheets("データ")
    Intersect(.Range("B:G, M:R"), Rows("2:" & .UsedRange.Rows.Count + 1)).Clear
End With
(SoulMan) 2020/03/07(土) 20:25

みなさま

ありがとうございます。

マナさん>Intersect勉強になりました

おかげさまで、思うようになりました!
(がんつ) 2020/03/07(土) 21:00


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.