[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『【VBA】ある条件に一致した行を削除し、上に詰めて表示させる方法』(かんな)
ご存知の方、教えた頂きたいです。。
以下のように実現するVBAを作成したいです。
■条件
・A列に1300番台(1300〜1399)、2100 番台(2100〜2199)がある行を削除
・残った行を上に詰めて表示
| A B
1行 | - - 2行 | ID パスワード 3行 | 1200 ああ 4行 | 1380 いい 5行 | 1200 うう 6行 | 1350 ええ 7行 | 2100 おお 8行 | 2800 かか
↓
4.6.7行目が削除され、上に詰めて表示される
| A B
1行 | - - 2行 | ID パスワード 3行 | 1200 ああ 4行 | 1200 うう 7行 | 2800 かか
お手数をおかけしますが、ご教授願います。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
(マナ) 2017/05/12(金) 18:33
(かんな) 2017/05/12(金) 18:43
手作業ならどういう方法をご存じなのか知りたかったのです。
それをマクロ化すればよいだけなので、
時間は気にする必要はないです。
詳細設定は使ったことありますか。
条件が多いのであれば、フィルターより便利です。
まずは手作業で使えそうか確認してみてください。
もしかすると手作業でも十分と思うかもしれませんが。
(マナ) 2017/05/12(金) 19:22
で、目的の挙動にならないかな?確認してみてください。
コードはあくまで一例ってことで。。
Sub DeleteLine()
Dim i As Long, l As Long Dim Del As Range
With ActiveSheet l = .Cells(Rows.Count, 1).End(xlUp).Row For i = 3 To l If (.Cells(i, 1) >= 1300 And .Cells(i, 1) < 1400) Or (.Cells(i, 1) >= 2100 And .Cells(i, 1) < 2200) Then If Del Is Nothing Then Set Del = .Rows(i) Else Set Del = Union(Del, .Rows(i)) End If End If DoEvents Next i End With
Del.Delete
End Sub
(がる) 2017/05/24(水) 18:28
詳細設定の条件だけど、難しいような?
|[A] |[B] |[C] [1]|ID |ID | [2]|>1399|<2100 |1399より大きく、2100未満 [3]|<1300|<>1290|または1300より小さく、1290以外 [4]|>2199| |または2199より大きい (稲葉) 2017/05/24(水) 19:41
深く考えていませんでした。確かに、ややこしいですね。
数式がわかりやすいかも。
=(A3>=1300)*(A3<1400)+(A3>=2100)*(A3<2200)+(A3=1290)=0
(マナ) 2017/05/24(水) 20:30
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.