2016-12-13 3 views
0

현재 다른 시트의 하이퍼 링크 링크를 복사하여 붙여 넣기위한 방법을 찾으려고합니다.하이퍼 링크가 포함 된 Vlookup - 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