| 
    
     |  | ▼瑠璃 さん: >初めてマクロを本を見ながら 組んでみたのですが
 >抽出結果が一つでもあれば、うまく動いてるのです。でも、抽出結果で何もない時はエラーと出てしまうので、マクロが中断されてしまいます。
 >空白の時は、つぎのマクロに進むようにするには、
 >どうすればよいのでしょうか?
 >
 >VBAの中身は
 >
 >Sub オートフィルタ切手()
 >'
 >' オートフィルタ切手 Macro
 >' オートフィルタで切手を抽出する
 >'
 >
 >'
 >  Sheets("sheet1").Select
 >  Range("BK71:BU101").Select
 >  Selection.AutoFilter
 >  Selection.AutoFilter Field:=1, Criteria1:=">=1", Operator:=xlAnd, _
 >    Criteria2:="<=4"
 >End Sub
 >Sub オートフィルタ切手コピー()
 >'
 >' オートフィルタ切手コピー Macro
 >' 抽出した切手をsheet2にコピー
 >'
 >
 >'
 >  Sheets("sheet1").Select
 >  Range("BM72:BM101").Select
 >  Selection.Copy
 >  Sheets("sheet2").Select
 >  Range("B11").Select
 >  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 >    :=False, Transpose:=False
 >  Sheets("sheet1").Select
 >  Range("BQ72:BQ100").Select
 >  Application.CutCopyMode = False
 >  Selection.Copy
 >  Sheets("sheet2").Select
 >  Range("C11").Select
 >  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 >    :=False, Transpose:=False
 >  Sheets("sheet1").Select
 >End Sub
 >
 >このようになっています。
 
 こんばんは。
 一つにまとめると、
 以下のような感じになると思うのですが、
 Option Explicit
 
 Sub オートフィルタ切手()
 '
 ' オートフィルタ切手 Macro
 ' オートフィルタで切手を抽出する
 ' オートフィルタ切手コピー Macro
 ' 抽出した切手をsheet2にコピー
 '
 With Sheets("sheet1")
 If .AutoFilterMode Then .AutoFilterMode = False
 .Range("BK71:BU101").AutoFilter Field:=1, Criteria1:=">=1", _
 Operator:=xlAnd, Criteria2:="<=4"
 If .AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
 .Range("BM72:BM101").Copy
 ’    ↑
 ’オートフィルターの結果がどんな場合でもこの範囲ですか?
 Sheets("sheet2").Range("B11").PasteSpecial Paste:=xlPasteValues, _
 Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 .Range("BQ72:BQ100").Copy
 ’    ↑
 ’オートフィルターの結果がどんな場合でもこの範囲ですか?
 
 Sheets("sheet2").Range("C11").PasteSpecial Paste:=xlPasteValues, _
 Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 End If
 .AutoFilterMode = False
 End With
 Application.CutCopyMode = False
 End Sub
 
 
 |  |