Aに入りましたか?
if-then-elseのようなものがありますか?
私は条件付き書式設定を試みましたが、成功しませんでした。
実例を投稿してもらえますか?
ありがとうございました
Aに入りましたか?
if-then-elseのようなものがありますか?
私は条件付き書式設定を試みましたが、成功しませんでした。
実例を投稿してもらえますか?
ありがとうございました
列Aと、列Bのタイムスタンプになります
=IF(A3<>"",IF(B3="",NOW(),B3),"")
値を使用してみてください、あなたはオプションで反復計算を有効にする必要があります。
これは、値が最初に列Aに入力されたときにのみタイムスタンプを生成することに注意してください。これを使用するには、通常セルの値を編集するのではなく、新しい値を入力します。
これは単なる回避策であり、完全な解決策ではないことに心配します。より便利なものが見つかった場合には、これを更新します。
あなた自身でこれを試したことがありますか?
私の意見では、最も難しいのは、Change
イベントについて考えていたことです。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
Application.EnableEvents = False
ActiveSheet.Cells(Target.Row, 2).Value = Format(Now, "h:mm")
Application.EnableEvents = True
End Sub
Format
のコンテンツは、必要に応じて変更できます。
こんにちは、私は間違いなく、私は10年間のプログラマーですが、実際にExcelを使用することを知らないし、実際に数学で最大のものでもありません:)私はこのコードをどこに追加するか分からないしかし、私はそれを試してみます。ありがとうございます:) – Herr
申し訳ありませんが、私はあなたのタイトルを誤解している可能性があります...私が示したのは[イベントプロシージャ]です(http://www.cpearson.com/excel/Events.aspx)、これを追加する必要がありますコードをワークシートに貼り付ける:タブを右クリックし、 'Edit code'をクリックし、私の答えのコードをコピーして貼り付けてください。(私のコメントにも上記のリンクを見てください) – JMax
+1 - あなたのEnableEvents =あなたのIntersectテストの後に3行目にFalse: – brettdj
= NOW()は揮発性であり、ワークブック内の何かが変更されたときにいつでも再計算されるので、問題なく使用することができます。
コード内にApplication.Volitile
を追加するだけで、別のメモとして、揮発性のUDFを作成することができます。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'when entering data in a cell in Col A
On Error GoTo enditall
Application.EnableEvents = False
If Target.Cells.Column = 1 Then
n = Target.Row
If Me.Range("A" & n).Value <> "" Then
Me.Range("B" & n).Value = Format(Now, "hh:mm:ss")
End If
End If
enditall:
Application.EnableEvents = True
End Sub
使用方法は?
シートタブと[コードを表示]を右クリックします。
コードをそのシートモジュールに貼り付けます。
Excelウィンドウに戻るにはAlt + qを押します。サンプルファイルの
Click here ...
ここでユーザ(すなわちセルのブロックを貼り付け)一度に複数のセルを更新する場合を扱う別のイベントプロシージャです。
Worksheet_Change
イベントプロシージャを使用する場合は、最初にイベント処理をオフにして、最後に常にオンに戻すことが必須です。
タイムスタンプの書式を意図的に除外していたことに注意してください。列がまだフォーマットされておらず、フォーマットする必要がある場合は、コード行を追加して.NumberFormat
プロパティを設定することをお勧めします。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 Then
Target.Resize(ColumnSize:=1).Offset(ColumnOffset:=1).Value = Now
End If
Application.EnableEvents = True
End Sub
列Aの変更を追跡するのは簡単です。ユーザーがセルのブロックを貼り付けると、他の列が少しトリッキーになる可能性があります。たとえば、列Dの変更を取得する場合は、C2:D2セルを貼り付けたときにコードを適用する必要があります(Intersect
メソッドを使用するか、Target.Columns.Count
プロパティを参照してください)。
マルチセルのアップデートで+1良いポイント、あまりにも頻繁に見落とされています。 – brettdj
roninありがとう、私は間違いなくこれを試してみます:) – Herr
これは動作しますが、すべての数式が再計算されるたびに再計算されるかもしれません(例えば...) - 私はこれをチェックする必要があります – JMax
あなたは興味があるようです編集履歴、[この1つ](http://www.tlookup.com/)を試してください – kshenoy