2015-10-18 55 views
0

程序說明我希望此程序每當單元格更改時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的改變?或者,您是否試圖建立一個流程,讓您可以隨時運行審計以查看過去隨時更改的所有單元格? –

回答

0

請試試這個:

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

不客氣。 –

0

您需要使用工作表更改事件 - 有一個如何下頁,包括如何只在某些細胞發生變化的反應上使用此事件解釋清楚。

Excel VBA:單元更改/輸入數據時自動運行Excel宏。工作表更改事件
http://www.ozgrid.com/VBA/run-macros-change.htm

相關問題