我有一个跟踪器,用户每天都会添加一行。 双击一个单元格后,我需要一个显示当前日期和用户名的代码。 Co列A是日期单元格,列P是用户名。
我有一些代码但是一旦勾选就会显示用户和日期。现在我需要点击一下。
Sub CheckBox_Date_Stamp()
Dim cbx As CheckBox
'Application.Caller returns the name of the CheckBox that called this macro
Set cbx = ActiveSheet.CheckBoxes(Application.Caller)
'.TopLeftCell returns the cell address located at the top left corner of the cbx checkbox
With cbx.TopLeftCell
'Check the checkbox status (checked or unchecked)
If cbx.Value = xlOn Then
' Checkbox is Checked
' User Name and Date-Time
.Offset(0, 1).Value = Environ("UserName")
.Offset(0, 2).Value = Now
Else
' Checkbox is unchecked; Clear cell contents?
.Offset(0, 1).ClearContents
.Offset(0, 2).ClearContents
End If
End With
End Sub
你能帮忙吗? 谢谢
答案 0 :(得分:1)
很难明白你究竟是什么意思,但总的来说,你需要SelectionChange
工作表中的事件。在此处的工作表中添加以下内容:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count <> 1 Then Exit Sub
If Target.Address = Cells(1, 2).Address Then
Cells(1, 1) = Application.UserName
Cells(1, 16) = Now
Else
Debug.Print "This was not B1"
End If
End Sub
点击B1
后,您将获得UserName
,时间可以列为A
和P
。
答案 1 :(得分:0)
这会将计算机用户名和日期/时间放在您双击的任何一个单元格的A / B列中。
将代码添加到工作表而不是单独的模块 您可能还想添加代码以检查列A:B是否尚未包含数据,或要求确认。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cells(Target.Row, 1) = Environ("username")
Cells(Target.Row, 2) = Now
End Sub