|
▼nonoka さん:
こんばんは
申し上げた手順そのものが少し間違っていました。
(そちらの操作も、申し上げた手順とは、少し違っていたようですが)
作業用シートを準備するのはやめ、printシートの O列を作業列に使います。
Sub Sample()
Const wCol As String = "O" '"print" シート上の作業列
Dim shTo As Worksheet
Dim c As Range
Dim r As Range
Dim a As Range
Application.ScreenUpdating = False
Set shTo = Sheets("print")
shTo.Cells.ClearContents
With Sheets("Schedule")
Set a = .Range("A9:M2000") 'リスト領域
.AutoFilterMode = False 'オートフィルターがかかっていた場合もいったん解除
a.Columns("L").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=shTo.Range(wCol & 1), Unique:=True
shTo.Columns(wCol).Hidden = True
Set r = shTo.Range(wCol & 1).CurrentRegion
a.AutoFilter 'あらためてオートフィルターセット
For Each c In r.Offset(1).Resize(r.Count - 1)
a.AutoFilter Field:=12, Criteria1:=c.Value
.Range("A1", a).Copy shTo.Range("A1")
shTo.PrintOut 'Preview '最終的には PrintOut に変更
Next
.AutoFilterMode = False
End With
shTo.Cells.ClearContents
Application.ScreenUpdating = True
End Sub
|
|