Excel 记录在范围列中编辑的用户

Excel 记录在范围列中编辑的用户,excel,vba,Excel,Vba,此VBA脚本在A列中记录修改B列的用户 Private Sub Worksheet_Change(ByVal Target As Excel.Range) 'Updated by Extendoffice 2017/10/12 Dim xRg As Range, xCell As Range On Error Resume Next If (Target.Count = 1) Then If (Not Application.Intersect(Targe

此VBA脚本在A列中记录修改B列的用户

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Updated by Extendoffice 2017/10/12
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    If (Target.Count = 1) Then
        If (Not Application.Intersect(Target, Me.Range("B:B")) Is Nothing) Then _
            Target.Offset(0, -1) = Application.UserName
        Application.EnableEvents = False
        Set xRg = Application.Intersect(Target.Dependents, Me.Range("B:B"))
        If (Not xRg Is Nothing) Then
            For Each xCell In xRg
                xCell.Offset(0, -1) = Application.UserName
            Next
        End If
        Application.EnableEvents = True
    End If
End Sub

我需要一个脚本:在a列中写入在列范围B:S中编辑的pc用户的姓名,因此您希望用户名写入列
a
,在行中,在列
B
中对
S
进行任何更改,对吗? 比如:

Private Sub Worksheet_Change(ByVal Target As Range)
    If (Target.Count = 1) And Not Application.Intersect(Target, Range("B:S")) Is Nothing Then
        Cells(Target.Row, 1) = Application.UserName
    End If
End Sub

因此,您希望将用户名写入列
A
,行中的
B
列对
S
进行任何更改,对吗? 比如:

Private Sub Worksheet_Change(ByVal Target As Range)
    If (Target.Count = 1) And Not Application.Intersect(Target, Range("B:S")) Is Nothing Then
        Cells(Target.Row, 1) = Application.UserName
    End If
End Sub

我有一个问题。如果列A被锁定,则在B:S定义的范围内编辑单元格时,我会查看错误VBA。你有什么办法来解决这个问题吗?或者你用
ActiveSheet解锁单元格。在写入之前取消保护
,或者–如果你想锁定单元格并且没有写入任何内容–只需将该
放在错误恢复下一步
中以隐藏错误。我有一个问题。如果列A被锁定,则在B:S定义的范围内编辑单元格时,我会查看错误VBA。你有什么办法解决这个问题吗?或者在写入之前用
ActiveSheet解锁单元格。取消保护
,或者–如果你希望它被锁定并且没有写入任何内容–只需将该
放在错误恢复下一步
中以隐藏错误。