|
▼瑠璃 さん:
>初めてマクロを本を見ながら 組んでみたのですが
>抽出結果が一つでもあれば、うまく動いてるのです。でも、抽出結果で何もない時はエラーと出てしまうので、マクロが中断されてしまいます。
>空白の時は、つぎのマクロに進むようにするには、
>どうすればよいのでしょうか?
>
>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
|
|