0

Excelマクロでこれを達成したいと思います:

私のワークブックでは、数式を使用Sheet1して範囲 ( ) に値が入力されています。A2:H20

また、Range( ) の値の変更をこの形式の日付スタンプでJ2:P20追跡する Range()もあります。A2:H20dd-mmm-yyyy

今私はこれをしたい:

  • A2日付スタンプの値が変更された場合は、J2
  • A3日付スタンプの値が変更された場合は、J3
  • B2日付スタンプの値が変更された場合は、K2
  • B3日付スタンプの値が変更された場合は、K3

そして、それはそれらの範囲内の他のセルでも同じです。

日付スタンプは、それぞれのセルの既存の日付 (存在する場合) を置き換える必要があります。範囲 ( A2:H20)内のいずれかのセルが=0空の場合、対応するセルに日付スタンプはありません。

4

1 に答える 1

0

以下は、セル A2/J2 のみを処理した例です。範囲全体で使用する場合は、コードを拡張する必要があります。以下のコードは、シートの「Worksheet_Change」プロシージャに挿入されます。例の一部はマイクロソフトのものです

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
'Code Example from Microsoft.com
'http://support.microsoft.com/kb/213612


' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("A2:H20")

If Not Application.Intersect(KeyCells, Range(Target.Address)) _
       Is Nothing Then

    ' Display a message when one of the designated cells has been
    ' changed.
    ' Place your code here.
    'MsgBox "Cell " & Target.Address & " has changed."  <--- Original Microsoft Example

    'Code to Check Value/Status of A2
    If Target.Address = "$A$2" Then
        If Range("A2").Value <> "" Then
        Range("J2").Value = Now()
        Else
        Range("J2").Value = ""
        End If
    End If

End If
End Sub
于 2013-05-30T05:32:39.473 に答える