Excel VBA質問箱 IV

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

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


18102 / 76738 ←次へ | 前へ→

【64080】Re:ご協力お願いします。
回答  Hirofumi  - 10/1/17(日) 8:56 -

引用なし
パスワード
   >詳細に伝えられず申し訳ないです。
>
>早速「Exit For '★追加」を追加しましたが、
>
>>'削除行を削除
>>.Offset(lngRows - lngCount + 1).Resize(lngCount, lngColumns).Delete Shift:=xlShiftUp
>
>でエラーが生じました。
>
>そこで、当初以下の条件で削除していたのですが、*保守*を削除したところエラーが消えました。
>
>>  vntDelList = Array("*保守*", "*サマリ*")
>
>複数の削除条件が引っかかってエラーが出ていたのでしょうか?

いや、私のチョンボで「Exit For」を書き忘れていたのせいだけでは無いようですね?

実際に出たエラーの内容(エラーダイアログに書かれている物)と
その時の各変数の値が解らないので特定出来ないのですが?

.Offset(lngRows - lngCount + 1).Resize(lngCount, lngColumns).Delete Shift:=xlShiftUp

がエラーを起こす可能性を考えてみます

1、「Resize プロパティ」に与える値、lngCount、lngColumnsのどちらかが0の場合
 a、lngColumns(List列数)は、このプロシージャに引数で与える呼び出し元の

  'Listの列数(A列〜K列)
  lngColumns1 = 11

  若しくは

  'Listの列数(M列〜W列)
  lngColumns2 = 11

  の値なので考えにくい
 b、lngCount(削除数)が0の場合は、

  With rngList
    '削除行が有るなら
    If lngCount > 0 Then

  で0の場合は実行しないので考えられない

2、「.Offset(lngRows - lngCount + 1)」の場合
 a、Offsetの前の拡張子"."が無い場合、コンパイルエラーが出て
  実行その物が出来ないので考えにくい
 b、削除するListが1行目から始まっている場合、lngRows - lngCount + 1が削除開始行なので
  lngRows - lngCount + 1 < 0に成った場合、詰まり削除行数がデータ行数を上回った場合
  エラーが出ます
  此れは、「Exit For」を書き忘れていた事により起きます
  原因は
  「Exit For」が在れば、
  「最初に合致した削除条件で削除の印を付け、削除する行数を足してLoopを抜ける」
  と言う動作をします  
  「Exit For」が無いと、
  「For〜NextのLoopを回り切り、その間で削除条件に合致した回数分
  削除数(lngCount)は加算される(印は同じ所に何度も付ける為、印は1つしか付かない)」
  という動作に成ります

  しかし、バグ修正で「Exit For」を正しい位置に追加すれば避けられると思います

因って、バグ修正で「Exit For」が正しい位置に追加されていれば、削除条件が重なっていても
正常に動くと思います

しかし、「Exit For」を追加してもエラーが回避されず、
削除条件の1つを外したら動いたと言うのも気に入りません?
私の考えている以外に原因が在ると思いますので

もう一度、削除List

  vntDelList = Array("*保守*", "*サマリ*")

を、元にもどしてTestして下さい
そして、エラーが出たら、ダイアログの文章をUpして下さい

次に、ダイアログの「デバグ」を押して下さい
すると、エラー行が反転表示されますので
lngColumns、lngCount、lngRowsの各変数にマウスポインタを持って行って変数の値をUpして下さい

次に、マクロを終了してExcelの画面に戻って下さい
各Listの最終列を見て下さい、其処に0か1が出力されています
(この0の行は残す行で1の行が削除されるぎょうです)
正常なら、Listの上に0が集まり、1が下に集まっていますので確認して下さい
0 hits

【64046】ご協力お願いします。 初心者 10/1/12(火) 22:19 質問
【64047】Re:ご協力お願いします。 Hirofumi 10/1/12(火) 23:49 回答
【64048】Re:ご協力お願いします。 Hirofumi 10/1/13(水) 0:22 回答
【64052】Re:ご協力お願いします。 初心者 10/1/13(水) 16:57 質問
【64053】Re:ご協力お願いします。 Hirofumi 10/1/13(水) 19:05 回答
【64054】Re:ご協力お願いします。 初心者 10/1/13(水) 20:38 お礼
【64055】Re:ご協力お願いします。 ご参考 10/1/13(水) 23:13 発言
【64060】Re:ご協力お願いします。 Hirofumi 10/1/14(木) 12:25 回答
【64065】Re:ご協力お願いします。 初心者 10/1/14(木) 22:41 質問
【64066】Re:ご協力お願いします。 Hirofumi 10/1/14(木) 23:37 発言
【64067】Re:ご協力お願いします。 初心者 10/1/15(金) 8:52 発言
【64068】Re:ご協力お願いします。 Hirofumi 10/1/15(金) 13:05 発言
【64069】Re:ご協力お願いします。 Hirofumi 10/1/15(金) 13:13 発言
【64074】Re:ご協力お願いします。 初心者 10/1/16(土) 22:29 質問
【64075】Re:ご協力お願いします。 かみちゃん 10/1/16(土) 22:34 発言
【64076】Re:ご協力お願いします。 Hirofumi 10/1/16(土) 23:15 回答
【64077】Re:ご協力お願いします。 Hirofumi 10/1/16(土) 23:27 回答
【64078】Re:ご協力お願いします。 Hirofumi 10/1/16(土) 23:45 回答
【64079】Re:ご協力お願いします。 初心者 10/1/17(日) 1:01 発言
【64080】Re:ご協力お願いします。 Hirofumi 10/1/17(日) 8:56 回答
【64081】Re:ご協力お願いします。 Hirofumi 10/1/17(日) 9:47 回答
【64085】Re:ご協力お願いします。 初心者 10/1/17(日) 12:41 発言
【64086】Re:ご協力お願いします。 Hirofumi 10/1/17(日) 16:10 回答
【64088】Re:ご協力お願いします。 初心者 10/1/17(日) 23:30 発言
【64089】Re:ご協力お願いします。 Hirofumi 10/1/18(月) 7:04 回答
【64090】Re:ご協力お願いします。 Hirofumi 10/1/18(月) 7:16 発言
【64102】Re:ご協力お願いします。 初心者 10/1/19(火) 9:26 お礼
【64082】Re:ご協力お願いします。 かみちゃん 10/1/17(日) 10:01 発言

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