我是Excel VBA的新手,我正在尝试编写一些实现以下功能的代码: 当在包含文本“123”或“xyz”的A列中单击一个单元格时,同一行但在B列中的单元格记录当前时间,同一行但在C列中的单元格记录了该用户名。点击它的人。
以下是我目前使用的代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RowNum As Long
If Target.Cells.Count > 1 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
If Not Target.Value.Text = 123 Then Exit Sub
If Not Target.Value.Text = XYZ Then Exit Sub
RowNum = Target.Row
Range("B" & RowNum).Value = Date
Range("C" & RowNum).Value = Environ("UserName")
End Sub
目前我在XYZ上有一个未定义的变量错误,但我觉得我的代码存在很多其他问题。
答案 0 :(得分:0)
你不是太远了。我认为这应该可行:
Private Sub Worksheet_Change(ByVal Target As Range) '<-- event is change, non selection change
Dim RowNum As Long
If Target.Cells.Count > 1 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
If (Target.Value = "123") Or (Target.Value = "xyz") Then '<-- if the value is either "xyz" or "123"
RowNum = Target.Row
Range("B" & RowNum).Value = Now() '<-- current time in column B
Range("C" & RowNum).Value = Environ("UserName") '<-- username in column C
End If
End Sub