如何基于2个单元格值自动在单元格中插入超链接

我想知道如果有人可以帮助。

我有一个macros,我使用作为更改logging如下:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If ActiveSheet.Name = "ChangeRecord" Then Exit Sub Application.EnableEvents = False UserName = Environ("USERNAME") NewVal = Target.Value Application.Undo oldVal = Target.Value lr = Sheets("ChangeRecord").Range("A" & Rows.Count).End(xlUp).Row + 1 Sheets("ChangeRecord").Range("A" & lr) = Now Sheets("ChangeRecord").Range("B" & lr) = ActiveSheet.Name Sheets("ChangeRecord").Range("C" & lr) = Target.Address Sheets("ChangeRecord").Range("D" & lr) = oldVal Sheets("ChangeRecord").Range("E" & lr) = NewVal Sheets("ChangeRecord").Range("F" & lr) = UserName Target = NewVal Application.EnableEvents = True End Sub 

所以,这些改变被logging在一个名为ChangeRecord的单独表格中,而且工作得很好。

我想要做的就是在列G中添加一个超链接,这个超链接使我直接find更改logging,所以如果B列中的单元格值是另一个名为Scotland的工作表,并且更改的单元格是$ A $ 21,那么在列G中自动创build的超链接将我带到该工作表上的该单元格。

任何帮助将不胜感激。 最好的祝福

检查下面的代码

 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If ActiveSheet.Name = "ChangeRecord" Then Exit Sub Application.EnableEvents = False UserName = Environ("USERNAME") NewVal = Target.Value Application.Undo oldVal = Target.Value lr = Sheets("ChangeRecord").Range("A" & Rows.Count).End(xlUp).Row + 1 Sheets("ChangeRecord").Range("A" & lr) = Now Sheets("ChangeRecord").Range("B" & lr) = ActiveSheet.Name Sheets("ChangeRecord").Range("C" & lr) = Target.Address Sheets("ChangeRecord").Range("D" & lr) = oldVal Sheets("ChangeRecord").Range("E" & lr) = NewVal Sheets("ChangeRecord").Range("F" & lr) = UserName Sheets("ChangeRecord").Hyperlinks.Add anchor:=Sheets("ChangeRecord").Range("G" & lr), _ Address:="", SubAddress:=Target.Worksheet.Name & "!" & Target.Address, _ TextToDisplay:="Changes" Target = NewVal Application.EnableEvents = True End Sub 

我认为这将做你所需要的。 请检查。

 Sheets("ChangeRecord").Hyperlinks.Add Anchor:=Sheets("ChangeRecord").Range("G" & CStr(lr)), Address:="", SubAddress:=ActiveSheet.Name & "!" & Sheets("ChangeRecord").Cells(Target.Row, Target.Column).Address, TextToDisplay:=ActiveSheet.Name