[Hỏi] Tạo Hyperlink đến ô chạy ngang theo cột

Liên hệ QC

hungtin1997

Dậm chân tại chỗ là đi lùi
Tham gia
16/10/20
Bài viết
101
Được thích
54
Giới tính
Nam
Chào mọi người em có 1 file Excel 32 sheet, em muốn tạo Hyper link bằng VBA tại ô A1 của mỗi Sheet về 1 Sheet đích, nhưng mỗi Sheet lại về 1 ô khác nhau như không phải luôn là A1 của sheet đích.
Mọi người hướng dẫn giúp em chỗ ô đích đến linh hoạt hơn được không ạ.
Ví dụ như: Sheets(1) thì link tới ô F1 của sheets("Dich"), Sheets(2) thì link tới ô I1 của sheets("Dich"), tức là cứ cách 2 cột lại có 1 ô là đích đến.
Code ban đầu đây ạ.
Mã:
Sub Macro5()
    For i = 1 To 31
    Sheets(i).Select
    Range("A1").Select
    Selection.Hyperlinks(1).SubAddress = "'Dich'!A1"
    Next
End Sub
 
PHP:
Sub Macro5()
    For i = 1 To 31
    Sheets(i).Select
    Range("A1").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="Dich!A1"
    Next
End Sub
Dùng chức năng record macro thì mình thấy nó chạy đúng đó, mặc dù chẳng hiểu lắm
 
Upvote 0
Chào mọi người em có 1 file Excel 32 sheet, em muốn tạo Hyper link bằng VBA tại ô A1 của mỗi Sheet về 1 Sheet đích, nhưng mỗi Sheet lại về 1 ô khác nhau như không phải luôn là A1 của sheet đích.
Mọi người hướng dẫn giúp em chỗ ô đích đến linh hoạt hơn được không ạ.
Ví dụ như: Sheets(1) thì link tới ô F1 của sheets("Dich"), Sheets(2) thì link tới ô I1 của sheets("Dich"), tức là cứ cách 2 cột lại có 1 ô là đích đến.
Code ban đầu đây ạ.
Mã:
Sub Macro5()
    For i = 1 To 31
    Sheets(i).Select
    Range("A1").Select
    Selection.Hyperlinks(1).SubAddress = "'Dich'!A1"
    Next
End Sub
Thử vầy:
Mã:
Sub Macro6()
  Dim i As Long
  For i = 1 To 31
    Sheets(i).Range("A1").Hyperlinks(1).SubAddress = "'Dich'!" & Range("C1").Offset(, i * 3).Address(0, 0)
  Next
End Sub
 
Upvote 0
Thử vầy:
Mã:
Sub Macro6()
  Dim i As Long
  For i = 1 To 31
    Sheets(i).Range("A1").Hyperlinks(1).SubAddress = "'Dich'!" & Range("C1").Offset(, i * 3).Address(0, 0)
  Next
End Sub
OK Thầy ạ, thì ra vấn đề nằm ở chỗ "Range("C1").Offset(, i * 3).Address(0, 0)"
Em hỏi thêm được không ạ, SubAddress nó bắt buộc phải là style A1 chứ không phải R1C1 ha thầy. Vậy nên em không thể đưa i vào ô đích được vì i là số trong khi cột là A,B,C
 
Upvote 0
OK Thầy ạ, thì ra vấn đề nằm ở chỗ "Range("C1").Offset(, i * 3).Address(0, 0)"
Em hỏi thêm được không ạ, SubAddress nó bắt buộc phải là style A1 chứ không phải R1C1 ha thầy. Vậy nên em không thể đưa i vào ô đích được vì i là số trong khi cột là A,B,C
Muốn đưa i vào thế nào,
Nếu là đưa vào subAddress thì cứ lấy địa chỉ của vùng theo R1C1 .Address là được
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom