|
▼あお さん:
なるべくコードをイジらないようにするなら・・・
>マクロはこんな感じで作ってます。
>抽出期間内のデータがない場合のマクロが
>分からなく困ってます。
>
>Sub ボタン1_Click()
>
> Dim strdate1 As String
> Dim strdate2 As String
> Dim strjouken1 As String
> Dim strjouken2 As String
>
> strdate1 = Range("B6").Value
> strdate2 = Range("D6").Value
> strjouken1 = ">=" & strdate1
> strjouken2 = "<=" & strdate2
>
> Workbooks.Open Filename:= "D:抽出先ファイル.xls"
>
> Sheets("sheet1").Select
> Range("A5").Select
> Selection.AutoFilter Field:=15, Criteria1:=strjouken1, Operator:=xlAnd _
> , Criteria2:=strjouken2
> Selection.AutoFilter Field:=16, Criteria1:="="
ここでデータがあるか判定すればよいのはわかりますか?
データの範囲がB5:O300で5行目が項目行なら
すでに使っている.Endを使って・・・
If Range("B301").End(xlUp).Row = 5 Then
MsgBox "データはありません"
Exit Sub
End If
でどうでしょう?
B列の途中に空白がないのが前提です。
空白があるなら他の列にしてください。
B300だと、300行目のみ対象だったときにバグります。
Range("B" & Rows.Count)とかRange("B65536") のほうが一般的かと。
> Range("B5:O300").Select
> Selection.Copy
> Windows("抽出用ファイル.xls").Activate
> Sheets("抽出結果出力用").Select
> Range("O4").Select
> Selection.End(xlDown).Select
> 'ActiveCell.Offset(1, 0).Select
> ActiveCell.Offset(0, -13).Select
> Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
> :=False, Transpose:=False
>
>END SUB
|
|