程序说明每次单元格更改时,我都希望将此程序发送到msgbox。对于前者如果我在row1和row2 BBB中有AAA,我希望我的代码能够识别单元格何时从一个字符串更改为另一个字符串。
问题之前我从未使用过更改功能,因此我不知道在我的代码中将它用于何处。任何人都可以帮我解决如何使用更改功能或任何其他方式来跟踪字符串更改。不知怎的,我的改变功能不起作用。
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)
您需要使用工作表更改事件 - 有关如何在下一页上使用此事件的明确说明,包括如何仅响应某些单元格中发生的更改。
Excel VBA:单元格更改/输入数据时自动运行Excel宏。工作表更改事件
http://www.ozgrid.com/VBA/run-macros-change.htm
答案 1 :(得分: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