SelectionChange 获取用户名和日期
SelectionChange to get username and date
我是 Excel VBA 的新手,我正在尝试编写一些代码来实现以下目标:
当单击 A 列中包含文本“123”或“xyz”的单元格时,在同一行但在 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 上出现变量未定义错误,但是我觉得我的代码似乎还有很多其他问题。
你并没有走得太远。我认为这应该可以正常工作:
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
我是 Excel VBA 的新手,我正在尝试编写一些代码来实现以下目标: 当单击 A 列中包含文本“123”或“xyz”的单元格时,在同一行但在 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 上出现变量未定义错误,但是我觉得我的代码似乎还有很多其他问题。
你并没有走得太远。我认为这应该可以正常工作:
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