VBA捕获用户名

时间:2016-01-06 16:46:30

标签: vba excel-vba excel

下面是在excel sheet1中使用更改值捕获时间和日期的代码。代码正确触发,但它不捕获用户名,我想捕获用户名,也隐藏捕获此数据的工作表。

Dim vOldVal 'Must be at top of module
Private Sub Worksheet_Change(ByVal Target As Range)
Dim bBold As Boolean

If Target.Cells.Count > 1 Then Exit Sub
On Error Resume Next

With Application
.ScreenUpdating = False
     .EnableEvents = Falseenter code here

End With

If IsEmpty(vOldVal) Then vOldVal = "Empty Cell"
bBold = Target.HasFormula
With Sheet3
        .Unprotect Password:="Secret"
            If .Range("A1") = vbNullString Then
                .Range("A1:E1") = Array("CELL CHANGED", "OLD VALUE", _
                    "NEW VALUE", "TIME OF CHANGE", "DATE OF CHANGE")
            End If
With .Cells(.Rows.Count, 1).End(xlUp)(2, 1)
              .Value = Target.Address
              .Offset(0, 1) = vOldVal
                  With .Offset(0, 2)
                    If bBold = True Then
                      .ClearComments
                      .AddComment.Text Text:= _
                           "OzGrid.com:" & Chr(10) & "" & Chr(10) & _
                              "Bold values are the results of formulas"
                    End If
                      .Value = Target
                      .Font.Bold = bBold
                  End With
            .Offset(0, 3) = Time
            .Offset(0, 4) = Date

        End With
.Cells.Columns.AutoFit
        .Protect Password:="Secret"

    End With

vOldVal = vbNullString
With Application
     .ScreenUpdating = True
     .EnableEvents = True
End With
On Error GoTo 0
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
vOldVal = Target
End Sub

0 个答案:

没有答案