Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10560 / 13644 ツリー ←次へ | 前へ→

【21088】重複する中計行の削除 初めの1歩 05/1/11(火) 14:28 質問[未読]
【21089】Re:重複する中計行の削除 IROC 05/1/11(火) 14:33 回答[未読]
【21090】Re:重複する中計行の削除 初めの 05/1/11(火) 16:24 質問[未読]
【21093】Re:重複する中計行の削除 MMX 05/1/11(火) 16:36 発言[未読]
【21094】Re:重複する中計行の削除 IROC 05/1/11(火) 16:40 回答[未読]
【21095】Re:重複する中計行の削除 初めの1歩 05/1/11(火) 16:42 質問[未読]
【21097】Re:重複する中計行の削除 IROC 05/1/11(火) 17:22 回答[未読]
【21099】Re:重複する中計行の削除 初めの1歩 05/1/11(火) 18:51 お礼[未読]

【21088】重複する中計行の削除
質問  初めの1歩  - 05/1/11(火) 14:28 -

引用なし
パスワード
   初心者です。中計の必要の無い行を(★)を削除する方法を教えてください。

 A  1000
 B   50
 中計 1050
 C   10
 中計  10  ★
 D   900
 E  1100
 F  2010
 中計 4010
 G  5000
 中計 5000  ★
 総計 10070

【21089】Re:重複する中計行の削除
回答  IROC  - 05/1/11(火) 14:33 -

引用なし
パスワード
   「中計の必要の無い行」というのは、
どのような条件で判定することができるのでしょうか?

★がある行であれば、オートフィルタで抽出して行削除すればよいかと思います。

【21090】Re:重複する中計行の削除
質問  初めの  - 05/1/11(火) 16:24 -

引用なし
パスワード
   説明不足で申し訳ありません。
実際の表には、★はついていません。
中計行と中計行の間が1行ならば、中計行を削除し、
2行以上ある場合は、中計行を残したいのです。
総計も残します。

【21093】Re:重複する中計行の削除
発言  MMX  - 05/1/11(火) 16:36 -

引用なし
パスワード
   はじめまして
>中計行と中計行の間が1行ならば、中計行を削除し、

つまり、中計行作成直前に作成対象行−2の位置に
中計行があるかないかを判断すれば良いのではないでしょうか?

ブランク行がある場合はループ文で遡って
集計対象行の数を確認するとか・・・

いかがでしょ?

【21094】Re:重複する中計行の削除
回答  IROC  - 05/1/11(火) 16:40 -

引用なし
パスワード
   >つまり、中計行作成直前に作成対象行−2の位置に
>中計行があるかないかを判断すれば良いのではないでしょうか?

Offsetプロパティが使えると思います。


>ブランク行がある場合はループ文で遡って
>集計対象行の数を確認するとか・・・

For 〜 Nextで1行ずつループしながら2行上を調べて
処理しますが、行削除すると行番号がずれるので
Step -1 で最下行から、逆ループするようにするとできます。

【21095】Re:重複する中計行の削除
質問  初めの1歩  - 05/1/11(火) 16:42 -

引用なし
パスワード
   Sub Macro5()
Dim r As Long, mymaxr As Long
Application.ScreenUpdating = False
mymaxr = Range("a" & Rows.Count).End(xlUp).Row
For r = mymaxr To 1 Step -1
If Range("a" & r).Value = "中計" Then
  Rows(r).Delete
End If
Next r
Application.ScreenUpdating = True
End Sub

中計行(固定文字:”中計”)を無条件に削除することはできました。
明細数をカウントし1明細の場合は中計行を削除したいのですが
条件の付け方がわかりません。
明細行の条件は空白以外で”中計”以外です。

【21097】Re:重複する中計行の削除
回答  IROC  - 05/1/11(火) 17:22 -

引用なし
パスワード
   こんな感じで出来ませんか?


>For r = mymaxr To 1 Step -1
 ↓
For r = mymaxr To 3 Step -1


>If Range("a" & r).Value = "中計" Then
 ↓
If Range("a" & r).Value = "中計" and Range("a" & r-2).Value = "中計" Then
もしくは
If Range("a" & r).Value = "中計" and Range("a" & r).offset(-2).Value = "中計" Then

【21099】Re:重複する中計行の削除
お礼  初めの1歩  - 05/1/11(火) 18:51 -

引用なし
パスワード
   ありがとうございました。
お蔭様で、成功しました。
大変助かりました。

10560 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free