Code link to sheet này sai ở đâu?

Liên hệ QC

Tường_Vi

Thành viên tiêu biểu
Tham gia
19/4/10
Bài viết
482
Được thích
121
Nghề nghiệp
Luôn tìm kiếm một vị trí tốt hơn
Tại sheet tổng hợp có có
- 1625 dòng dữ liệu
- Cột I là tên của các sheet tương ứng


Em record một Macro, chạy tốt
PHP:
Sub Macro1()
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
       "'2007_HP-0509'!A1", TextToDisplay:="2007_HP-TM-0509.pdf"
End sub

Em muốn link lần lượt 1625 dòng (Sheet tổng hợp) tại cột I đến [A1] các sheet có tên tương ứng
Em sửa Macro trên thành như này thì nó không chạy

PHP:
sub linkToSheet()
For i = 2 to 1625
Sheet180.Range("I" & i).Hyperlinks.Add Anchor:=Sheet180.Range("I" & i), Address:="", SubAddress:= _
        "'" & Sheet180.Range("I" & i) & "'" & "!A1", TextToDisplay:=Sheet180.Range("I" & i)

Next
End sub

File rất nhiều sheet và nặng. em không gửi được

Rất mong anh chị sửa giúp. Em cám ơn
 
Lần chỉnh sửa cuối:
File rất nhiều sheet và nặng. em không gửi được

Rất mong anh chị sửa giúp. Em cám ơn
Mình đoạn code của bạn không có vấn đề gì mà có thể bạn thiếu đối số thôi, phương thức Add Hyperlinks gồm
Add(Anchor As Object, Address As String, [SubAddress], [ScreenTip], [TextToDisplay]) As Object
PHP:
sub linkToSheet()
For i = 2 to 1625
Sheet180.Range("I" & i).Hyperlinks.Add Anchor:=Sheet180.Range("I" & i), Address:="", SubAddress:= _
        "'" & Sheet180.Range("I" & i) & "'" & "!A1",,TextToDisplay:=Sheet180.Range("I" & i)

Next
End sub
 
Upvote 0
Em gửi file ví dụ
Anh giúp em nhé
 

File đính kèm

Upvote 0
Em gửi file ví dụ
Anh giúp em nhé

Thay vì ghi
"'" & Sheet1.Range("I" & i) & "'" & "!A1"
Bạn thử sửa thành:
"'" & Sheet1.Range("I" & i).Value & "'" & "!A1"
Đại khái nên ghi rõ .Value vào
Nhớ thêm dòng On Error Resume Next vào đầu code để phòng lỗi phát sinh
 
Upvote 0
Anh NDU ơi
Em đã sửa lại nhưng không chạy được
PHP:
Sub linktosheet()
For i = 2 To 4
Sheet1.Range("I" & i).Hyperlinks.Add Anchor:=Sheet1.Range("I" & i), Address:="", SubAddress:= _        
"'" & Sheet1.Range("I" & i).Value & "'" & "!A1", TextToDisplay:=Sheet1.Range("I" & i)

NextEnd Sub
 
Upvote 0
Thì ra code nó là như này. Không có "'" ở đầu
và chỗ Text Display phải có .value

Cám ơn các ANh nhiều
PHP:
Sub Macro2()
'
' Macro2 Macro
'

'
For i = 2 To 4
   
  
    Sheet1.Hyperlinks.Add Anchor:=Sheet1.Range("I" & i), Address:="", SubAddress:= _
        Sheet1.Range("I" & i).Value & "!A1", TextToDisplay:=Sheet1.Range("I" & i).Value
Next
End Sub
 
Upvote 0
he he...
Hóa ra nếu tên sheet chuẩn thì không có "'" ở đầu.
Nếu tên sheet đặt ko chuẩn em để ý thấy link sẽ có dấu "'" ở đầu
 
Upvote 0
he he...
Hóa ra nếu tên sheet chuẩn thì không có "'" ở đầu.
Nếu tên sheet đặt ko chuẩn em để ý thấy link sẽ có dấu "'" ở đầu
Nếu tên sheet có kí tự rỗng thì phải có thêm "'" vào nên người ta thường khuyến cáo không nên đặt tên sheet tiếng việt hoặc có ký tự rỗng, mình nhớ Sư phụ ndu96081631 đã giải thích cho mình một lần rồi
 
Upvote 0
he he...
Hóa ra nếu tên sheet chuẩn thì không có "'" ở đầu.
Nếu tên sheet đặt ko chuẩn em để ý thấy link sẽ có dấu "'" ở đầu
Có đâu chứ
Để dấu "'" vào vẫn được mà ---> Tại bạn thiếu .Value thôi (ở chổ TexttoDisplay ấy)
Tóm lại, code sẽ vầy:
PHP:
Sub linktosheet()
  For i = 2 To 4
  Sheet1.Range("I" & i).Hyperlinks.Add Anchor:=Sheet1.Range("I" & i), Address:="", SubAddress:= _
        "'" & Sheet1.Range("I" & i).Value & "'!A1", TextToDisplay:=Sheet1.Range("I" & i).Value

  Next
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom