Excelでのマンションの売上管理を行うこととなりました。
今までは1シート1マンションという形で管理しており、全体の数字や予定等を見る際に手間がかかっていました。
これを期に、データベースのような形で1つのExcelに抽出したいと思っています。
###前提・実現したいこと
・複数シート上の該当する行のみ、別Excelに抽出したい
(自動ではなく、「転送」ボタン押したら等、ワンアクションありでも可)
###試したこと
今まではできないと思っていたので、入力した際に手動でコピペしていました。
最近VBA等を触るようになり、特定の値を持たせて対象とすれば
抽出できるのでは・・・と思い質問させていただきました。
###補足情報(言語/FW/ツール等のバージョンなど)
Excel2013、対象シートは変動しますが25~30ほど
1シート1物件、1行に1部屋の情報を入力しています。
管理項目は全物件同じなのですが、計算方法がそれぞれ異なってくるため、1シートにまとめられない状況です。
各シートにはあらかじめ販売金額等を記載しており、契約が決まった際に契約者等を記入すると、
その契約で得られる仲介手数料等が算出される形となります。
私の勉強不足によりおかしな質問をしているかもしれませんが、何卒よろしくお願いいたします。
###途中経過
ご回答いただいた方々のおかげで、元シートをコピー後、別ブックへの書き込みは
できるようになりました。
ただ、複数行が対象となった場合に、貼付けの動作が1行の中でループしてしまいます。
(言葉で伝わるか微妙なところですが)
98%回答いただいたコードですが以下のコードです。
【やりたいこと】
対象となった行を別ブックに貼付け、次の対象となった行はその下に貼付ける 以後繰り返し
Sub 書きかけ() Dim i As Integer i = 1 Dim sht As Worksheet Dim rng As Range Dim lastRow As Long '現在のブック内にあるすべてのシートをループ処理 For Each sht In ActiveWorkbook.Worksheets '対象シート内のA列先頭からA列最終データ行までをループ処理 For Each rng In sht.Range(sht.Cells(1, 1), sht.Cells(sht.Rows.Count, 1).End(xlUp)) 'A列が1なら、その行をコピー If sht.Cells(rng.Row, 1) = 1 Then sht.Rows(rng.Row).Copy 'DBブックを選択し、一番下の行を選択 Windows("VBAテスト.xlsx").Activate lastRow = sht.Cells(sht.Rows.Count, 1).End(xlUp).Row + 1 '値で貼り付け Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End If Next rng Next sht End Sub
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/25 03:56
2016/08/26 04:38
2016/08/26 05:09