[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『行を1行毎に削除したい』(ありん)
A B 1 2 日付 3 名称a 売価 4 原価 5 名称b 売価 7 原価 6 名称c 売価 7 原価 ・・・198まであります。
上記のようなファイルがあり、編集をしたいのですが 原価は必要ありません。 A4から、2行毎にA198までを削除をしたいのですが、マクロは勉強中のため Ctrl を押しながら行を一つ一つクリックで反転し、記録を取りながら行ったら・・・ すっごい長くなってしまいました(TT)
もっと短く、簡潔に出来ないでしょうか?
そのような場合には、オートフィルタを使ってはいかがでしょうか。 オートフィルタをかけたあとで、A列の▼を押して、空白を選択 A列が空白の行だけが出てきますので、あとは行削除で。 (川野鮎太郎)
川野鮎太郎さん、お返事ありがとうございます。 省略して書いてしまった私が悪いのですが、名称の下には コードが数字3桁で書いてあります。 オートフィルタを使用したことが無いのですが、空白以外にも 使用できるのでしょうか? もしよろしかったら、やり方を教えていただいてもよろしいでしょうか?
A B 1 2 日付 3 名称a 売価 4 001 原価 5 名称b 売価 7 011 原価 6 名称c 売価 7 123 原価 ・・・198まであります。
(ありん)
ということでしたら、オートフィルタをしたあとで、B列でフィルタして 原価を選択して、行削除でどうでしょうか。 (川野鮎太郎)
横から失礼します。 万が一、売価・原価共に数値の場合に関数で、
任意の列の3行目に =INDIRECT("A"&ROW()+ROW(A1)-1) その右隣の列に =INDIRECT("B"&ROW()+ROW(A1)-1)
として両方のセルをフィルダウン A3,A5,A7...、奇数行を抽出します。 (jindon)
( ̄0 ̄;アッ売価、原価って略するためで、実際は金額が入っているってこともありますね。 てっきり文字で入っているものとばかり思い込んでいました。(^_^A; jindonさん、フォローありがとうございます。 (川野鮎太郎)
(川野鮎太郎)さん。あくまでも、万が一です! 私も、フィルターとかエクセルが持っている機能で可能であれば、 そちらを優先するほうですので。 (jindon)
jindonさん、承知しております^^
ありんさん、これはあくまで参考のためです。
どうしてもマクロで一気にってことであれば
Sub gyosakujo()
Dim i As Long
For i = 4 To 198 / 2 '4行目から削除として
Rows(i).Delete Shift:=xlUp
Next i
End Sub
(川野鮎太郎)
川野鮎太郎さん、、外してたらほんとにごめんなさいなんですけど、、、 行を削除する時は、したから上がってきた方がいいんじゃないんですか? 外してたら、ごめんなさいm(__)m (夏目雅子似)
Sub gyosakujo()
Dim i As Long
Application.ScreenUpdating = False
For i = Range("C65536").End(xlUp) / 2 To 4 Step -2 '4行目から削除として
Rows(i).Delete Shift:=xlUp
Next i
Application.ScreenUpdating = True
End Sub
ちょっと気になったので・・・ >Range("C65536").End(xlUp) / 2 To 4 Step -2 最終行÷2は、まずくありません? (ケン)
。゚゚(´□`。)°゚。わーん!! また、動きません(>_<) C列はもともとないようですよ(*´ノェ`)こっそり Aに変えても、型が一致しませんって怒られちゃいます(ToT) (川野鮎太郎)
Range("A65536").End(xlUp).Row To 4 Step -2 ですね。 ただし、偶数行の確認をしないとペケですが。 川野さんのはStep 1 で「/2」だから動く、と考えるべき。 (KAMIYA)
わかりました。 Range("a65536").End(xlUp).Row To 4 Step -2 ですね。 ただし最終行が不要だとしてになりますね。 (川野鮎太郎)
KAMIYAさん、フォローありがとうございます。m(__)m (がぁ〜〜んの夏目雅子似)
夏目雅子似さんの削除は下からって言うのは、セルのスクロール数を減らして 処理を早くするってことでしょうか。だとすれば、_〆\(..;) メモメモ (川野鮎太郎)
確かじゃないんですけど、、重複とか判断する時に、上からだと、 なくなっちゃうとか、なんとか、、 そんなのが、関係なかったら、いいんでしょうけどね。。 行を削除する時は「下から」って聞いた様な気がしたもので。。^_^; しかし、相変わらずの「どっ滑り回答」でしたぁ。。ごめんなさいねm(__)m (夏目雅子似)
皆さんありがとうございます。 関数でも可能だったんですね^^; でも、マクロってすごい!! 大変勉強になりました^^ (ありん)
(ありん)さん解決して何よりデス。 TO 川野鮎太郎さま 夏目雅子似さま これが「3の倍数行を削除」であれば 下からのほうが単純になって都合が良いのです。 上から削除は・・・行番号が変化していくのでややこしい。 処理速度は?です。 (KAMIYA)
あぁ〜〜ん、川野鮎太郎さんに聞かれてた時に こう答えていたら、私のかぶもあがったかも?なのにぃ。。(冗談汗) でも、Range("C65536").End(xlUp) / 2 ってしてたら、、駄目ですよね(>_<) でも、そいう理由があったのですね。大変勉強になりました。 理由は知らなかったけど、行の削除は下からが基本らしいですわ。。(>_<) _〆\(..;) メモメモ KAMIYA様 いつも、いつも、フォローありがとうございます。 (夏目雅子似)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.