[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件に一致しない行を削除するマクロ』(zunzun)
A列〜O列にデータがあります。A2行から4行毎に工事のデータが複数記入してあり、各ブロックの集計行も途中にあります。このデータで、売上予定が書いてある行より上の3行を残し、他の行を削除したいのですが、どうしたらよいのでしょうか?
A ・・・・・・・・・・O
1 山側ブロック
2 工事G
3 ●×
4 --
5 売上予定
6 工事Z
7 ▲■
8 ***
9 売上予定
10 山側ブロック計
11
12 利益
13
13 海側ブロック
14 工事Q
なお、売上予定を検索するマクロは以下のように書いて、実行できています。よろしくお願いします。
Sub Find_01()
'A列に売上予定があれば、明るい緑にセルを着色
Dim c As Object Dim myKey As String, fAddress As String myKey = "売上予定" With Worksheets(1).Range("a1:a1000") Set c = .Find(What:=myKey, LookIn:=xlValues, lookat:=xlWhole, _ SearchOrder:=xlByColumns, MatchByte:=False) If Not c Is Nothing Then fAddress = c.Address Do c.Interior.ColorIndex = 4 '明るい緑 Set c = .FindNext(c) If c.Address = fAddress Then Exit Do Loop End If End With End Sub
< 使用 Excel:Excel2010、使用 OS:Windows7 >
行削除はさいごにまとめて実行したほうが効率的ですけど、手を抜いて。
Sub Test() Dim c As Range Dim mRow As Long Dim i As Long
mRow = Range("A" & Rows.Count).End(xlUp).Row For i = mRow To 4 Step -1 If Cells(i, "A").Value = "売上予定" Then Cells(i, "A").EntireRow.Offset(-3).Resize(3).Delete Next
End Sub
あっ!!! もとい!! 3行を消すんじゃなく残すんですね。↑は無視してください。
(β) 2015/01/28(水) 18:01
これでいかがでしょうか。
Sub Test2() Dim c As Range Dim mRow As Long Dim i As Long
mRow = Range("A" & Rows.Count).End(xlUp).Row For i = mRow To 1 Step -1 If Cells(i, "A").Value = "売上予定" Then Rows(i).Delete i = i - 3 If i < 0 Then Exit For Else Rows(i).Delete End If Next
End Sub
(β) 2015/01/28(水) 18:34
こんな感じかな?
Sub test() Dim r As Range, ff As String Set r = Columns(1).Find("売上予定") If Not r Is Nothing Then ff = r.Address Do r(-2).Resize(4).EntireRow.Hidden = True Set r = Columns(1).FindNext(r) Loop While ff <> r.Address Range("a1", Range("a" & Rows.Count).End(xlUp)).SpecialCells(12).EntireRow.Delete Columns(1).Rows.Hidden = False End If End Sub (seiya) 2015/01/28(水) 18:36
(zunzun) 2015/01/29(木) 11:13
(zunzun) 2015/01/29(木) 11:57
Specialcells(12) は SpecialCells(xlCellTypeVisible)で可視セルの意味です。 (seiya) 2015/01/29(木) 12:09
VBエディタでSpecialcells部分にカーソルを置いてF1を押してヘルプを表示させてみてはどうか? (ねむねむ) 2015/01/29(木) 13:12
VBE - [表示] - [オブジェクトブラウザー]
xlCellType
と入力すると全てのメンバが表示されますよ? 暇なときに見ておくと参考になるかも (seiya) 2015/01/29(木) 13:17
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.