2016-10-07 3 views
3

誰かが助けてくれるのだろうかと思っていました。2セルの値に基づいてセルにハイパーリンクを自動挿入する方法

私は次のように私は変更レコードとして使用しているマクロを持っている:

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 

ので、変更がChangeRecordと呼ばれる別のシートに記録されており、これはうまく働いています。

また、変更レコードにまっすぐ入る列Gにハイパーリンクを追加すると、列Bのセル値がスコットランドという名前の別のワークシートであり、変更されたセルが$ A $ 21の場合、列Gで自動作成されたハイパーリンクがワークシートのそのセルに移動します。

ご協力いただければ幸いです。 敬具

+0

、[このポスト](http://stackoverflow.com/questions/9813488/excel-vba-create-hyperlink-to-another-sheet) – Zac

答えて

1

は、私は、これは何が必要でしょうと思います以下のコード

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 
+0

パーフェクトを見てくださいどうもありがとうございました、作品治療多くのありがとう – newtovba

0

を確認してください。チェックしてください。

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 
+0

あなたのお返事ありがとうございます、私はあなたの提案も試みましたが、これは上記のようにハイパーリンク出力のターゲットセル/セル範囲を表示せず、少し修正しました。これは私が好きなものですSheets( "ChangeRecord")。ハイパーリンク.Add _ アンカー:=シート( "ChangeRecord")。範囲( "G"&lr)、_ アドレス:= " "、SubAddress:=" "&Sh.Name&" - "&Target.Address、ScreenTip:="変更されたセル/セル範囲にリンクする " – newtovba

関連する問題