| 
    
     |  | ▼初心 さん: 
 このメッセージが出るということは wsInvoiceシートの21行目から下に
 結合セルがあるということです。
 
 よく調べてみてください。
 
 なお、処理後、F列をクリアしているということは、次回処理する際には
 1 がたっていないわけですから、必ず 1 をつけてから操作する必要がありますね。
 
 まぁ、それはともあれ、アップされたコードでやろうとしていることを継承して
 コード記述をかえてみました。参考までに。
 (それでも、結合セルがあれば、これもエラーになります)
 
 ★印のところは実際のシート名にしてください。
 
 Sub Sample()
 Dim wsData As Worksheet
 Dim wsInvoice As Worksheet
 
 Set wsData = Sheets("Sheet1")    '★
 Set wsInvoice = Sheets("Sheet2")  '★
 
 wsInvoice.Range("A1", wsInvoice.UsedRange).Columns("A:H").Offset(20).ClearContents
 wsData.AutoFilterMode = False '念のためいったんリセット
 
 wsData.Range("A1").CurrentRegion.AutoFilter Field:=6, Criteria1:="1"
 wsData.AutoFilter.Range.Copy wsInvoice.Range("A21")
 
 On Error Resume Next
 wsData.ShowAllData
 On Error GoTo 0
 
 wsData.AutoFilter.Range.Columns("F").Offset(1).ClearContents
 
 wsInvoice.Select
 
 End Sub
 
 
 |  |