2

列 11 にデータがあります ( dde ​​リンク)。11 列目の 12 列目のデータが変更されたときにタイム スタンプを付けたいと思います。

シート 1 で .....:

Private Sub Workbook_Open(ByVal Target As Range)
Sheet1.ValDDE = Target.Column = 10
End Sub

モジュール 1 で ........:

Public ValDDE
Private Sub Worksheet_Calculate(ByVal Target As Range)
If VarType(ValDDE) = VarType(Target.Column = 10) Then
If ValDDE <> Cells(Target.Column, 12).Value = Now Then _
  MsgBox "New value : " & Target.Column = 11 _
  Else Exit Sub
Else: MsgBox "New value : " & Target.Column = 11
End If
ValDDE = Target.Column = 11
End Sub
Sub ddetrackchange()

End Sub
4

1 に答える 1

0

horcruxを遅くする厄介なパフォーマンスの 1 つである 'calculate' メソッドを削除することをお勧めします。

で以下をお試しくださいworksheet changed eventfor loop1 つのセルのみを検出する場合は、範囲内の各セルをチェックする必要はありません。

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim myRng As Range
    Set myRng = Range("D2") 'change according to yours
    If Target.Application.DDEAppReturnCode = True 'this check the dde link updates specifically
      If Target.Address = myRng.Address Then        
         'change time in some other cell
         Range("E2").value = now()
      else
      'do something else
      End If
    else
    'do something else
    End If
End Sub
于 2012-12-11T12:23:15.680 に答える