excel - 将工作表名称添加到工作表更改日志

标签 excel vba spreadsheet

下午好,

我在网上找到了这段代码来创建更改日志,我想将其应用于多张工作表。如何让它拉出更改单元格的工作表的名称?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strAddress As String
Dim val
Dim dtmTime As Date
Dim Rw As Long

If Intersect(Target, Range("A:Z")) Is Nothing Then Exit Sub
   'change range to suit
dtmTime = Now()
With Target
      val = .Value
       strAddress = .Address
End With

Rw = Sheets("Log").Range("A" & Rows.Count).End(xlUp).Row + 1
With Sheets("Log")
    .Cells(Rw, 1) = strAddress
    .Cells(Rw, 2) = Environ("UserName")
    .Cells(Rw, 3) = dtmTime
    .Cells(Rw, 4) = val

End With
End Sub

最佳答案

停止使用多个 Worksheet_Change 事件子并切换到 ThisWorkbook 私有(private)代码表中的单个 Workbook_Sheetchange。

Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

    Select Case LCase(Sh.Name)
        Case "sheet1", "sheet2", "sheet3"
            If Not Intersect(Target, Sh.Range("A:Z")) Is Nothing Then
                On Error GoTo exit_out
                Application.EnableEvents = False
                Dim rw As Long, t As Range
                For Each t In Intersect(Target, Sh.Range("A:Z"))
                    With Worksheets("Log")
                    rw = Worksheets("Log").Range("A" & Rows.Count).End(xlUp).Row + 1
                        .Cells(rw, "A") = t.Address(0, 0)
                        .Cells(rw, "B") = Environ("UserName")
                        .Cells(rw, "C") = Now
                        .Cells(rw, "D") = t.Value
                        .Cells(rw, "E") = Sh.Name
                    End With
                Next t
            End If
        Case "log"
            'do nothing
    End Select

exit_out:
    Application.EnableEvents = True

End Sub

关于excel - 将工作表名称添加到工作表更改日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53820352/

相关文章:

excel - 如何使用公式在 Google 表格中创建与 Explore()、implode() 模式匹配方法等效的方法?

excel - 如何获取具有重复值的单元格地址

excel - VBA Excel 将文件导出为 .csv,并将数据保留在正确的列中

google-apps-script - 如何根据 Google Docs 电子表格中的当前日期设置行的背景颜色?

ruby-on-rails - 使用 Ruby 生成 Excel 文档

php - 通过php导出到excel文件时如何保持mysql数据的格式

vba - 从文件路径中检索文件夹路径

xml - 在 Excel 中使用 XML 电子表格打印适合宽度

excel - 满足一定条件的单元格字符串的总和

excel - 如何匹配重音字符而不是制表符