我在此站点上找到了一些代码,我认为这些代码可以解决我的问题,但是,当我将其添加到工作簿并更改指定列中的单元格时,什么都没有发生。我想看看是否有人能够告诉我我哪里做错了。我需要做的是,当X列中的单元格发生更改时,在相应的单元格中添加UserName和TimeStamp(由CAT Project审阅)。我已将此代码放入我的个人工作簿中,但我不知道这是否会成为问题?另外,我将需要它在任何工作表上工作而无需指定名称。这是我正在使用的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ThisRow As Long ' make sure to declare all the variables and appropiate types
ThisRow = Target.Row
'protect Header row from any changes
If (ThisRow = 2) Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "Header Row is Protected."
Exit Sub
End If
If Cells(2, Target.Column) = "Reviewed by CAT Project" Then
Dim sOld As String, sNew As String
sNew = Target.Value 'capture new value
With Application
.EnableEvents = False
.Undo
End With
sOld = Target.Value 'capture old value
Target.Value = sNew 'reset new value
If sOld <> sNew Then
' time stamp corresponding to cell's last update
Range("Z" & ThisRow).Value = Now
' Windows level UserName | Application level UserName
Range("Y" & ThisRow).Value = Environ("username")
Range("Y:Z").EntireColumn.AutoFit
End If
Application.EnableEvents = True
End If
End Sub
答案 0 :(得分:1)
您发布的代码可以如果:
由于是工作表代码,因此安装非常容易,并且自动使用:
如果有任何疑问,请先在试用工作表上尝试。
如果保存工作簿,则宏将随其一起保存。 如果您在2003年以后使用Excel版本,则必须保存 该文件为.xlsm而不是.xlsx
要删除宏:
要全面了解有关宏的更多信息,请参见:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
要了解有关事件宏(工作表代码)的更多信息,请参见:
http://www.mvps.org/dmcritchie/excel/event.htm
必须启用宏才能使其正常工作!