单击日期和用户名

时间:2017-08-08 09:33:16

标签: vba excel-vba excel

我有一个跟踪器,用户每天都会添加一行。 双击一个单元格后,我需要一个显示当前日期和用户名的代码。 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

你能帮忙吗? 谢谢

2 个答案:

答案 0 :(得分:1)

很难明白你究竟是什么意思,但总的来说,你需要SelectionChange工作表中的事件。在此处的工作表中添加以下内容:

enter image description here

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,时间可以列为AP

答案 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