[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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
(隠居じーさん) 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.