Excel VBA質問箱 IV

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

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


5774 / 13645 ツリー ←次へ | 前へ→

【48935】オートフィルタについて 福神漬 07/5/16(水) 16:03 質問[未読]
【48936】Re:オートフィルタについて ponpon 07/5/16(水) 16:26 発言[未読]
【48937】Re:オートフィルタについて Kein 07/5/16(水) 16:40 回答[未読]

【48935】オートフィルタについて
質問  福神漬  - 07/5/16(水) 16:03 -

引用なし
パスワード
   オートフィルタでデータを抽出する場合、抽出したいデータがないときは
その後の処理を実行させないようにするにはどうすればよいでしょうか?
今まで、データがあるのを前提にしか考えていなかったため、データ抽出データがないときに余計なものがコピーされてしまいます。
宜しくお願い致します。

  Selection.AutoFilter Field:=1, Criteria1:="MOS"
  Range("B4:AZ65536").Select
  Worksheets("製品管理表").Range("D4").Resize(Range("D" & Rows.Count).End(xlUp).Row, 53).Copy
  Sheets("MOS").Select
  Range("B4").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  myR = Cells(65536, 8).End(xlUp).Row + 1
  Cells(myR, 6).Select
    Worksheets("製品管理表").Select
    Range("H3:H65536").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:="MOS"
    Range("B4:AZ65536").Select
    Worksheets("製品管理表").Range("D4").Resize(Range("D" & Rows.Count).End(xlUp).Row, 53).Copy
    Worksheets("MOS").Select
    Worksheets("MOS").Cells(myR, 2).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
  Range("B4").Select
  Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select

【48936】Re:オートフィルタについて
発言  ponpon  - 07/5/16(水) 16:26 -

引用なし
パスワード
   ://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=34597;id=excel

ここが参考になりますでしょうか?

【48937】Re:オートフィルタについて
回答  Kein  - 07/5/16(水) 16:40 -

引用なし
パスワード
   例えば B列 に "MOS" という値があるかないか ? を
事前(フィルターをかける前)に調べれば良いと思います。
MATCH か COUNTIF のワークシート関数がVBAで使えますので

If IsError(Application.Match("MOS", Range("B:B"), 0)) Then
  MsgBox "「MOS」が見つかりません", 48: Exit Sub
End If

とか

If WorksheetFunction.CountIf(Range("B:B"), "MOS") = 0 Then
  MsgBox "「MOS」が見つかりません", 48: Exit Sub
End If

などと、見つからなければ即座に中止するとか。
さらにこの考え方を進めて、数式だけでフィルターの代用もできますが・・。

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