タイムスタンプ付きのデータを含むログシートを保持するExcelマクロ
こんにちは、
私は、計算されたセルにすべての変更を記録し、それぞれにタイムスタンプを付ける必要があるプロジェクトに取り組んでいます.状況は次のとおりです.
他のいくつかのデータシートを見て、「開口部」の数を計算している列(列K)があります.別のシートに実行中のログファイル(「ログ」と呼ばれる)を作成して、これらの「開口部」の値のいずれかが変更されるたびに、その値も変更されるようにする必要があります.
タイムスタンプとして、対応するいくつかのセル(簡単にするために、列Cの対応する行の値など)がログシートの次の空の行にコピーされます.特定のセルの開口部の値は複数回変更されるため、次のようにする必要があります.
最新の変更だけでなく、各変更の記録があることを確認してください.
私はマクロに不慣れで、これらすべての要素をまとめるのに苦労しています.
助けてくれてありがとう!
返信リスト(回答:8)
このシートイベントコードは、ワークシートへの変更を追跡します
変更が保存され、日付/時刻が挿入されます 「ログシート」
コードをコピーして、[Sheet1]タブと[コードの表示]を選択します
そこにコードを貼り付け、必要に応じてターゲット範囲を変更します.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strAddress As String
薄暗いval
Dim dtmTime As Date
Dim Rw As Long
Intersect(Target、Range( "A1:M1000"))が何もない場合は、Subを終了します
'範囲を適切に変更
dtmTime= Now()
val= Target.Value
strAddress= Target.Address
Rw= Sheets( "Log Sheet").Range( "A"&Rows.Count).End(xlUp).Row + 1
シート付き( "ログシート")
.Cells(Rw、1)= strAddress
.Cells(Rw、2)= val
.Cells(Rw、3)= dtmTime
で終わる
サブの終了
ゴード
応答7# ->にスキップ6 #MesaPraもう1つの質問-他の列のセルの値も返すようにする方法はありますか?たとえば、列C?
私のデータは列に格納されているので、K4で行われた変更については、C4の値を出力する必要があります.
これは私が試したことです
strAddress=(C&Target.Row).Value
応答6# ->にスキップ5 #GordDib 1コードに列を追加する方法は次のとおりです.
ターゲット範囲を変更します......
Intersect(Target、Range( "C:C、K:K"))が何もない場合は、Subを終了します
他の例.....
Intersect(Target、Range( "A:A、C:C、E:G、K:K"))が何もない場合は、Subを終了します
ゴード
応答5# ->にスキップ2 #MesaPraターゲットに列を追加したくありません.追加の列が変更される心配はありません.
ターゲットセルに対応する同じ行の列Cに値を出力したいだけです.
印刷ステートメントを変更できるはずだと思います.以下を参照してください.
Intersect(Target、Range( "K:K"))が何もない場合は、Subを終了します
'範囲を適切に変更
dtmTime= Now()
val= Target.Value
strAddress=***行Target.Rowの値ですが、列C***Rw= Sheets( "Req Log").Range( "A"&Rows.Count).End(xlUp).Row + 1
シーツ付き( "要求ログ")
.Cells(Rw、1)= strAddress
.Cells(Rw、2)= val
.Cells(Rw、3)= dtmTime
で終わる
応答2# ->にスキップ3 #GordDib 2迷子になっていますが.....
このように変更しますか?
ターゲットあり
val=.Offset(0、-8).Value
strAddress=.Offset(0、-8).Addressで終わる
ゴード
応答8# ->にスキップ4 #GordDib 1追跡したいシートであるため、コードは「求人」のモジュールに保存されます.
このように「A1:M1000」を「K:K」に変更します
Intersect(Target、Range( "K:K"))が何もない場合は、Subを終了します
変更がログに記録される「ログシート」という名前のシートがあることを確認してください.
ブックをマクロ対応*.xlsm
として保存したことを確認してくださいゴード