如何保持vba中的单元格更改记录

问题描述:

程序说明我希望此程序每当单元格更改时msgbox。例如。如果我有行1和行2中的AAA BBB我希望我的代码识别单元格从一个字符串更改为另一个字符串时。如何保持vba中的单元格更改记录

问题我从未使用过更改函数,所以我不知道在我的代码中使用它。任何人都可以帮助我了解如何使用更改函数或任何其他方式来跟踪字符串更改。不知何故,我的更改功能不起作用。

Sub xym() 

    Dim x As String, dtext, lastrow As Long, ws1 As Worksheet, wb As Workbook 
    Dim rangnum As Range, i As Long 
    Set wb = ActiveWorkbook 
    Set ws1 = wb.Worksheets("Sheet1") 
    lastrow = ws1.UsedRange.Rows.Count + 1 
    Set rangenum = ws1.Range("A1:A" & lastrow) 
    dtext = rangenum.Value 

    For i = 1 To UBound(dtext, 1) 
     If dtext(i,1).change then msgbox "yes" 
    Next i 

End Sub 
+0

将从用户编辑或从功能执行的改变结果? –

+0

@ Gary的学生函数执行....当我要去运行宏时,每当单元格值发生变化时,它将循环遍历行和msgbox – user3795861

+0

您是否试图实时运行这个运行,例如,对列A的改变?或者,您是否试图建立一个流程,让您可以随时运行审计以查看过去随时更改的所有单元格? –

请试试这个:

Sub xym() 
    Dim i&, v 
    With Sheet1.[a1] 
     v = .Resize(.Item(.Parent.Rows.Count).End(xlUp)(2).Row) 
    End With 
    For i = 2 To UBound(v) - 1 
     If v(i, 1) <> v(i - 1, 1) Then 
      MsgBox "Yes." & vbLf & "Cell A" & i & " is different." 
     End If 
    Next 
End Sub 
+0

感谢此作品完美 – user3795861

+0

不客气。 –

您需要使用工作表更改事件 - 有一个如何下页,包括如何只在某些细胞发生变化的反应上使用此事件解释清楚。

Excel VBA:单元更改/输入数据时自动运行Excel宏。工作表更改事件
http://www.ozgrid.com/VBA/run-macros-change.htm