![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_03.png?e8efa67)
シートBにその日のデータを入力し、そのデータをシートAに蓄積していきたいです。
手作業ならば、
1.入力されたシートBのその日のデータをコピー
2.シートAの同じ日付の行を探し、値のみペースト
とするのでしょうが、これを自動化したいです。
セル参照だと、毎日、同じ行にデータが上書きされていくため
無理っぽいし、マクロを使わないとできませんか?
コピーとペーストはできそうですけど、「同じ日付の行を探し」というところが難しそうだなぁと思いました。。。
すみませんが、よろしくお願いします。
シートA(データ蓄積用)
日付 データ
12/1 データ1
12/2
・
・
12/31
シートB(データ入力用)
日付 データ
12/2 データ2
↑日付が変われば、同じ行にデータを上書き
No.1ベストアンサー
- 回答日時:
シート名「シートB」の シート名タブを右クリックして「コードの表示」
出てきたVBE画面にコピペします。
シートB の B2セルに書き込みをするとシート名「シートA」に書き込みをします。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim r, tr As Range
Set tr = Target.Cells(1, 1)
If tr.Address = "$B$2" Then
With Worksheets("シートA")
Set r = .Range("A:A").Find(tr.Offset(0, -1).Value, _
.Range("A65536"), xlFormulas, xlWhole)
If r Is Nothing Then
.Range("A65536").End(xlUp).Offset(1, 0).Value = tr.Offset(0, -1).Text
.Range("B65536").End(xlUp).Offset(1, 0).Value = tr.Value
Else
r.Offset(0, 1).Value = tr.Value
End If
End With
End If
End Sub
ありがとうございます。
Findを使って該当セルを探すのですね。
流れはわかりました。
もうちょっと勉強してみます。
今回は早速のご回答ありがとうございました。
No.2
- 回答日時:
ブックを保存する前に当日のデータ(データ2)をデータ蓄積用シートに書き込むようにしました。
マクロ中のシート名は実際の名前に変更してください(質問にあるとおりのシートA、シートBとしています)。また当日分のデータが書かれているセルアドレスがB2以外であれば、これも3行目を変更してください
なお、データ蓄積用シートの日付はA列、データはB列としてマクロを書きました。違うのであれば補足してください。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim RES
Const Adr As String = "B2" '← 当日のデータのセルアドレス
With Worksheets("シートB")
RES = Application.Match(.Range(Adr).Offset(0, -1).Value * 1, _
Worksheets("シートA").Range("A1:A10000"), 0)
If IsError(RES) Then
MsgBox ("合致する日付が見つからないため" & Chr(13) & _
"本日のデータは書き込みできません")
Else
Worksheets("シートA").Cells(RES, "B") = .Range(Adr).Value
End If
End With
End Sub
マクロはALT+F11でVBE画面を開き、「VBAProjectエクスプローラ」の「ThisWorkBookを右クリック」→「コードの表示」で表示される画面にペーストして下さい。ブック保存時に自動実行されます。
丁寧なご回答ありがとうございました。
No.1さんのFindに対し、Matchを使うのですね。
参考にさせていただきます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
エクセルで入力シートから別シートに蓄積方法について
Excel(エクセル)
-
Excelで日付変更ごとに、自動的にデータを転記
Excel(エクセル)
-
毎日の日計を別シートに自動で更新、反映させたい
PowerPoint(パワーポイント)
-
-
4
エクセルで「入力」と「蓄積」の簡単なデータベース
Excel(エクセル)
-
5
エクセルでデータを蓄積させるには?
Excel(エクセル)
-
6
EXCELでシート1で作ったデータをシート2にデータを蓄積させたい
Excel(エクセル)
-
7
エクセルを利用して、日計と累計を毎日作成する方法
Excel(エクセル)
-
8
【Excel関数】別シートに日付順でデータを抽出する方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IFとIFS関数
-
Excelを無料で使うには? パソ...
-
セルの数を求めたい
-
エクセルの数式バーのフォント...
-
Excelの表示についての質問
-
再質問です。マクロの修正箇所...
-
データチェックを行うエクセル...
-
Excelに詳しい方! B列が「日...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelで50個のセルに同じ文字を...
-
Excelの数式について教えてくだ...
-
Excel VBAで全ての矢印を赤色に...
-
エクセル関数を使って
-
祝日と土曜、日曜の合計をカウ...
-
xlsxファイルを保存する際にPDF...
-
Excelについて
-
エクセルVBA、別ブックへ転記す...
-
エクセルで「ページレイアウト...
-
2列に入っているデータを1列...
-
【ExcelVBA】名前を付けて保存→...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報