以下のようなコードでできます。
python
1import win32com.client
2xlApp = win32com.client.Dispatch("Excel.Application")
3
4#エクセルファイルを開く
5book = xlApp.Workbooks.Open("C:/Users/ooooo/Excel11")
6
7#シートの定義(簡略化のため)
8sheet1 = book.Worksheets('sheet1')
9sheet2 = book.Worksheets('sheet2')
10
11#シート.抽出範囲.AutoFilter(Field=抽出条件の対象となる列番号,
12# Criteria1=条件1,
13# Operator=条件の組み合わせ(and,orなど)),
14# Criteria2=条件2
15#Criteriaについては不等号などの指定も可能
16
17#1ヶ月分のデータをAutofilterで抽出(このコードでは使用日をもとにしている)
18sheet1.Range('A1:H10').AutoFilter(Field=7, Criteria1=">=2019/5/1",Operator=1,Criteria2="<2019/6/1")
19#抽出データの行数
20last = sheet1.Range('B1').End(-4121).Row
21#抽出データをsheet2にコピー
22sheet1.Range('A2:H' +str(last)).Copy(Destination = sheet2.Range('A2'))
23#次のコピー先を決める(空行を作るため+2する)
24copy_target_row=sheet2.Range('B1').End(-4121).Row+2
25
26sheet1.Range('A1:H10').AutoFilter(Field=7, Criteria1=">=2019/6/1",Operator=1,Criteria2="<2019/7/1")
27last = sheet1.Range('B1').End(-4121).Row
28sheet1.Range('A2:H' +str(last)).Copy(Destination = sheet2.Range('A'+str(copy_target_row)))
29
30copy_target_row=sheet2.Range('A'+str(copy_target_row)).End(-4121).Row+2
31
32#上書き保存
33book.Save()
34#エクセルファイルを閉じる
35book.Close()
例としては、画像1枚目の実行元データ(Sheet1)に対して実行すると、画像2枚目のような結果(Sheet2)が得られます。


また、複数月のデータを抽出する場合、for文を使って簡略化することができます。ご参考にどうぞ。
python
1#for文バージョン
2
3#コピー先の行数を初期化
4copy_target_row=2
5
6#抽出したい月を指定(この場合4~6月いっぱいまで)
7start_month=4
8end_month=7
9
10for i in range(start_month,end_month):
11 #1ヶ月分のデータをAutofilterで抽出(このコードでは使用日をもとにしている)
12 sheet1.Range('A1:H10').AutoFilter(Field=7, Criteria1='>=2019/'+str(i)+'/1',Operator=1,Criteria2='<2019/'+str(i+1)+'/1')
13
14 #抽出データの行数
15 last = sheet1.Range('B1').End(-4121).Row
16
17 #抽出データをsheet2にコピー
18 sheet1.Range('A2:M' +str(last)).Copy(Destination = sheet2.Range('A'+str(copy_target_row)))
19
20 #次のコピー先を決める(空行を作るため+2する)
21 copy_target_row=sheet2.Range('A'+str(copy_target_row)).End(-4121).Row+2
参考記事
pywin32の扱い:pywin32からCOMを使ってExcelを操作する方法
AutoFilterについて:オートフィルタ(AutoFilterメソッド)でのデータ抽出
※pythonではなくVBAに関する記事ですが、動作はほぼ同じです。