使用VBA将Excel工作表链接到同一工作簿中的另一个工作表

我试图跟踪在我的工作簿中做了什么,所以我想有一个工作表的副本,其中添加了评论添加到更改date和用户改变它(不关心他们改变但我想知道他们更改date和用户名的单元格),是的,我知道你可以使用复制和粘贴作为链接,但我现在拥有的VBA脚本无法识别在原表单中所做的更改。 :

Private Sub Worksheet_Change(ByVal Target As Excel.range) 'If Target.Column <> 1 Then Exit Sub Dim ccc As range Dim comment As String Application.ScreenUpdating = False Application.Calculation = xlManual comment = ("Cell Last Edited: ") & Now & (" by ") & Application.UserName Target.ClearComments For Each ccc In Target range(ccc.Address).AddComment comment Next ccc Application.ScreenUpdating = True Application.Calculation = xlAutomatic End Sub 

在哪些作品真的很好,现在要清楚我想要的脚本,复制原来的工作表另一个,如果有人作出改变,然后复制或修改复制表和添加注释date和用户名

任何build议将是伟大的,并提前感谢:D

不确定是否保留工作表的副本是最简单的方法:如果用户在现有数据或图表等中插入新的行或列(数千)或单元格

我build议保持类似的变化日志

  • 给两张工作表(Sheet1和Sheet2)
  • Sheet1包含数据
  • Sheet2将包含一个包含4列的日志:Date,User Name,Cell,New Value

那么Sheet1将包含这个VBA代码:


 Option Explicit Private logLine As Long Private Sub Worksheet_Change(ByVal Target As Range) If Target.CountLarge < 1000 Then ' don't log deletion of all cells on Sheet1 Dim editedCell As String ' get the clean cell address ("A1" instead of "$A$1") editedCell = Target.Address(RowAbsolute:=False, ColumnAbsolute:=False) With Sheet2 ' generate all log lines on Sheet2 logLine = logLine + 1 ' move to the next row on Sheet2 ' Column 1: Date and Time .Cells(logLine, 1).Value2 = Format(Now, "ddd mmm dd, yyyy hh:mm:ss") ' Column 2: User Name .Cells(logLine, 2).Value2 = Application.UserName ' Column 3: link to the edited cell, also showing the cell itself .Hyperlinks.Add _ Anchor:=.Cells(logLine, 3), _ Address:=vbNullString, _ SubAddress:="Sheet1!" & editedCell, _ TextToDisplay:=editedCell ' Column 4: the new value .Cells(logLine, 4).Value2 = Target.Value2 End With End If End Sub 

在Sheet2上,您将有4列:

  Date-Time User Nane Cell New Value Wed Jun 03, 2015 01:07:43 User1 A1 Test 1 Wed Jun 03, 2015 01:07:48 User2 B3 Test 3 Wed Jun 03, 2015 01:07:52 User5 D2 Test 7 

为什么你需要首先有一个VBA代码? 您可以简单地使用已经内置的跟踪Excel中的更改(查看 – 更改 – 跟踪更改)的function。 一旦用户进行更改,保存并closures工作簿; 您可以直接进入“追踪变更”function中的“高亮显示更改”行,并select“在新工作表上列出更改”。 这将创build一个新的工作表,并将显示所有必要的信息(行动号码,date,时间,谁,变化,工作表,范围,新的价值,旧的价值等)。