- ベストアンサー
分割払いの管理表から次月の振替対象者を抽出する方法はありますか?
- 自動口座振替契約者の内、次月の振替対象者を抽出したいです。
- 現在は手動で探せるが、契約者増加時に限界が来そうなため、帳票からの抽出方法を知りたいです。
- 帳票(1)(2)を利用することで、A2に「2020/3/31」と入力すると該当するデータが表示されるようにしたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
振替日はH列から始まるということでよければ 以下と思います。 Option Explicit Sub sample() Dim RowCnt As Long Dim ColCnt As Long Dim PutCnt As Long Dim GetWsh As Worksheet Dim PutWsh As Worksheet Dim DatCol As Long With ThisWorkbook Set GetWsh = .Sheets("Sheet1") Set PutWsh = .Sheets("Sheet2") End With RowCnt = 2 PutCnt = 4 PutWsh.Rows("5:999").Delete '出力行範囲削除 Do If GetWsh.Cells(RowCnt, 1).Value = "" Then Exit Do ColCnt = 8 '振替日が埋まる最初の列番号 Do If GetWsh.Cells(RowCnt, ColCnt).Value = "" Then Exit Do If GetWsh.Cells(RowCnt, ColCnt).Value >= _ PutWsh.Cells(2, 1).Value Then PutCnt = PutCnt + 1 PutWsh.Cells(PutCnt, 1).Value = _ GetWsh.Cells(RowCnt, 1).Value For DatCol = 2 To 6 PutWsh.Cells(PutCnt, DatCol).Value = _ GetWsh.Cells(RowCnt, DatCol + 1).Value Next DatCol Exit Do End If ColCnt = ColCnt + 2 Loop RowCnt = RowCnt + 1 Loop End Sub
その他の回答 (1)
- HohoPapa
- ベストアンサー率65% (455/693)
・振替日が指定日以降か?をチェックする ・振替日は、E列から右方向、1列おきに、左詰め という条件、かつ、VBAでよければ 以下のコードでいかがでしょうか。 Sub sample() Dim RowCnt As Long Dim ColCnt As Long Dim PutCnt As Long Dim GetWsh As Worksheet Dim PutWsh As Worksheet With ThisWorkbook Set GetWsh = .Sheets("Sheet1") Set PutWsh = .Sheets("Sheet2") End With RowCnt = 2 ColCnt = 5 PutCnt = 4 PutWsh.Rows("5:999").Delete '出力行範囲削除 Do If GetWsh.Cells(RowCnt, 1).Value = "" Then Exit Do ColCnt = 5 Do If GetWsh.Cells(RowCnt, ColCnt).Value = "" Then Exit Do If GetWsh.Cells(RowCnt, ColCnt).Value >= _ PutWsh.Cells(2, 1).Value Then PutCnt = PutCnt + 1 PutWsh.Cells(PutCnt, 1).Value = _ GetWsh.Cells(RowCnt, 1).Value PutWsh.Cells(PutCnt, 2).Value = _ GetWsh.Cells(RowCnt, 3).Value PutWsh.Cells(PutCnt, 3).Value = _ GetWsh.Cells(RowCnt, 4).Value Exit Do End If ColCnt = ColCnt + 2 Loop RowCnt = RowCnt + 1 Loop End Sub
補足
HohoPapa様 本当にありがとうございます。感謝以外の言葉が見つかりません…。 もしお許しいただけるようであれば、今一度お力をお借りすることはできませんでしょうか。 Sheet1のC列「番号」の部分なのですが、現在「銀行名」「支店名」「種目」「口座番号」を合わせたものを記入しています。Sheet1のC列(名前)とD列(口座)の間に、3列足して、それぞれを単独で入力した場合も、Sheet2に同じように抽出することは可能でしょうか。 Sheet1 A B C D E F G 1 契番 契約日 名前 銀行名 支店名 種目 番号 2 11111 2020/1/1 〇 □ △ ● ■ Sheet2 1 振替予定日 2 (日付入力) 3 4 契約番号 名前 銀行名 支店名 種目 番号 5 11111 〇 □ △ ● ■ 最初のご回答をいただいただけでも満足しなければならないのは十二分に承知しております。ただ、もし可能ならばと欲がでてしまいました。 本当に申し訳ありません。 今ひとたびのご教示の程、よろしくお願い申し上げます。
お礼
本当にありがとうございます! ただいま出先の為、実際に利用させていただくのは明日となりますが、お礼だけでも先にと投稿させていただきました。 貴重なお時間を使ってご回答・ご教示いただき、心から感謝申し上げます。