2

我在第 11 列中有数据( dde ​​链接)。我希望在第 12 列中的第 11 列中的数据发生变化时有一个时间戳。这是我尝试过但没有按预期工作的一些代码?

在表 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

我建议您删除 'calculate' 方法,因为它是减慢horcrux的那些讨厌的性能之一。

请尝试以下操作worksheet changed eventfor loop如果您只检测到一个单元格,则不需要使用 a 检查范围内的每个单元格。

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 回答