2016-12-13 8 views
0

私は現在、別のシートからハイパーリンクのリンクをコピーして貼り付ける方法を見つけるために挑戦しています。Vlookup with Hyperlink - VBA

はずのプログラムが動作するための方法は、あなたがリストから項目のカテゴリを選択し、以下のすべての列が自動的に「」カテゴリー「」シート

問題にVLOOKUPチェックアップで満たされているということです

: 情報をコピーして過ぎるとハイパーリンクを維持する必要がありますが、私はまだコード内で新しく、現在どのように機能させるのか分かりません。

コードは隠されているので、人々はそれを混乱させることができず、特殊なケースのためにセルから一番上に書き込むことができるので、私はVBAを本当に保持したいと思います。

Sub Update() 
Dim calData As String 
Dim add As String 
Dim i, LastRow 
LastRow = Range("G" & Rows.Count).End(xlUp).Row 
For i = 3 To LastRow 
If Cells(i, "G").Value <> "" Then 
    Range("Q" & i).Value = Application.VLookup(Cells(i, "G"), Sheets("Category").Range("A2:H60"), 4, False) 
    Range("R" & i).Value = Application.VLookup(Cells(i, "G"), Sheets("Category").Range("A2:H60"), 6, False) 
    'Set calData = Worksheets("Calendar").Range("R" & i) 
    'add = "G:\Engineering\Engineering trainees (HUG)\Etalonnage\Procédures calibration\" & Data 
     'With Worksheets("Calendar") 
     '.Hyperlinks.add Anchor:=.Range("R" & i), _ 
     'Address:=add, _ 
     'TextToDisplay:=Data 
     'End With 
    Range("S" & i).Value = Application.VLookup(Cells(i, "G"), Sheets("Category").Range("A2:H60"), 7, False) 
    Range("T" & i).Value = Application.VLookup(Cells(i, "G"), Sheets("Category").Range("A2:H60"), 8, False) 
End If 
End Sub 

答えて

0

あなたは近いと思います。以下のコードを試してください。
実際には、変数名として "add"を使用しないようにしてください。それはIntelliSenseを乱し、私はaddrに変更しました。
Q値、R値、S値、T値の列は、固定値の代わりに式を使用する方が良いでしょうか?列Gのセルが変更されたときにこのSubを呼び出すイベントコードがない限り。

Sub Update() 
    Dim calData As String 
    Dim addr As String 
    Dim i As Long, LastRow As Long 

    LastRow = Range("G" & Rows.Count).End(xlUp).Row 
    For i = 3 To LastRow 
     If Cells(i, "G").Value <> "" Then 
      Range("Q" & i).Value = Application.VLookup(Cells(i, "G"), Sheets("Category").Range("A2:H60"), 4, False) 
      Range("R" & i).Value = Application.VLookup(Cells(i, "G"), Sheets("Category").Range("A2:H60"), 6, False) 

      calData = Worksheets("Calendar").Range("R" & i).Value ' Or .Text, depends on data 
      addr = "G:\Engineering\Engineering trainees (HUG)\Etalonnage\Procédures calibration\" & calData 
      With Worksheets("Calendar") 
       .Hyperlinks.Add Anchor:=.Range("R" & i), Address:=addr, TextToDisplay:=calData 
      End With 

      Range("S" & i).Value = Application.VLookup(Cells(i, "G"), Sheets("Category").Range("A2:H60"), 7, False) 
      Range("T" & i).Value = Application.VLookup(Cells(i, "G"), Sheets("Category").Range("A2:H60"), 8, False) 
     End If 
    Next 
End Sub