Giúp: Tạo Hyperlink (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

timhieu02

Thành viên hoạt động
Tham gia
30/9/09
Bài viết
114
Được thích
7
Giới tính
Nam
Chào các anh/chị/bạn,

cho mình xin lỗi nếu post sai mục.
Mình có vấn đề tạo hyperlink, cần anh/chị/bạn giúp. Mình có attached file mẫu và có ghi yêu cầu trong file.

Mong tin hồi âm sớm từ anh/chị/bạn :)

Trân trọng
 

File đính kèm

các anh/chị/bạn ơi, có ai nhín chút time giúp mình với..do cũng đang cần gắp ngày mai nên mong các pác giúp với :)
 
Upvote 0
các anh/chị/bạn ơi, yêu cầu mình note trong file có cần làm rõ thêm yếu tố nào thí các pác báo mình nhé. :) Mong các pác xem và giúp mình sớm nhé :)

Chúc 1 ngày làm việc vui vẽ
 
Upvote 0
Có anh/chị nào giúp mình với :)
 
Upvote 0
Vấn đề của bạn chỉ là hyperlink thôi, mình cần file gốc có các tên sheet đầy đủ, bạn lấy file gốc xóa bớt dữ liệu lại, rồi gửi lên đây làm một lần cho gọn luôn

 
Upvote 0
dạ. thanks anh. em dùng file gốc và đã xóa bớt data trong file temp_output ở trên. trong file em có 5 tables rồi ạ
 
Upvote 0
Mình tạo cho bạn 2 nút để check, vấn đề mình không hiểu khi lọc được giá trị ở ô [A1] ra thì nó sẽ link như thế nào,có nut "back to Index" thì làm ok rồi, mình viết code tìm được giá trị ở ô [A1] như bạn yêu cầu vui lòng xem code và giải thích xử lí chuỗi tìm được rõ hơn thì mình sẽ giúp cho
Mã:
Dim i As Long, Leng As Long, rEnd As Long, m As Long
Dim Ktu As String, Gtri As String
On Error Resume Next
rEnd = [b100000].End(xlUp).Row
Leng = Len([a1])
If Leng > 6 Then
    For i = 1 To Leng
        Ktu = Right(Left([a1], i), 1)
        If Ktu = ":" Then
            m = i + 1
            Exit For
        End If
    Next i
    If m > 0 Then
        Gtri = Left(Right([a1], Leng - m), Leng - m - 5)
        For i = 8 To rEnd
            If Cells(i, 1).Value = Gtri Then
                Cells(i, 1).Select
                Exit Sub
            End If
        Next i
    End If
End If
 

File đính kèm

Upvote 0
Dạ. thanks anh. yêu cầu chính của dự án này là:

- Ban đầu chỉ có sheet "Table"
- Sau đó chạy macro (hoặc tạo add-in), sẽ tự tạo sheet "Index" và lấy data tương tứng tiêu để và base như template
[TABLE="width: 446"]
[TR]
[TD="colspan: 3"]#TABLE INDEX#[/TD]
[/TR]
[TR]
[TD]Table No[/TD]
[TD]Table Title[/TD]
[TD]Base[/TD]
[/TR]
[TR]
[TD]1[/TD]
[TD]X3: ques1[/TD]
[TD]232[/TD]
[/TR]
[TR]
[TD]2[/TD]
[TD]X4: Ques Temp 1[/TD]
[TD]150[/TD]
[/TR]
[TR]
[TD]3[/TD]
[TD]X5: Ques Temp 5[/TD]
[TD]200[/TD]
[/TR]
[TR]
[TD]4[/TD]
[TD]Ques Total[/TD]
[TD]215[/TD]
[/TR]
[/TABLE]

- Sau đó click vào hyperlink sẽ link tới table tương ứng
- Và dưới mỗi table tương ứng sẽ có hyperlink "Back To Index" để về sheet "Index"

[TABLE="width: 454"]
[TR]
[TD]X3 : X3: ques1<BR/>[/TD]
[TD][/TD]
[/TR]
[TR]
[TD]Project Test[/TD]
[TD="align: right"]123[/TD]
[/TR]
[TR]
[TD]Table: 574<BR/>Level: Top[/TD]
[TD][/TD]
[/TR]
[TR]
[TD]Back to Index[/TD]
[TD]CLASSIFY RESPONDENTS[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]Total[/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD="align: right"][/TD]
[/TR]
[/TABLE]

Mong các anh/chị chỉ giáo thêm :)
 
Lần chỉnh sửa cuối:
Upvote 0
bạn qua sheet index bấm nút hyperlink coi đúng chưa, nếu chưa thì tối về sửa sau, h mình đi làm rồi
 

File đính kèm

Upvote 0
Dạ. gần đúng rồi ạ.
nhưng cần chỉnh lại cho đẹp như sau, vì khi chạy button "Hyperlink" trong sheet "Index", title không hiện lên được tương ứng title từng table sheet "Table".
[TABLE="width: 446"]
[TR]
[TD="colspan: 3"]
#TABLE INDEX#[/TD]
[/TR]
[TR]
[TD]Table No[/TD]
[TD]Table Title[/TD]
[TD]Base[/TD]
[/TR]
[TR]
[TD]1[/TD]
[TD]#TABLE INDEX#[/TD]
[TD]232[/TD]
[/TR]
[TR]
[TD]2[/TD]
[TD]Table!A41[/TD]
[TD]232[/TD]
[/TR]
[TR]
[TD]3[/TD]
[TD]Table!A99[/TD]
[TD]200[/TD]
[/TR]
[TR]
[TD]4[/TD]
[TD]Table!A147[/TD]
[TD]215[/TD]
[/TR]
[/TABLE]

-> phải như vầy thì hay quá:

[TABLE="width: 446"]
[TR]
[TD="colspan: 3"]#TABLE INDEX#[/TD]
[/TR]
[TR]
[TD]Table No[/TD]
[TD]Table Title[/TD]
[TD]Base[/TD]
[/TR]
[TR]
[TD]1[/TD]
[TD] X3: ques1[/TD]
[TD]232[/TD]
[/TR]
[TR]
[TD]2[/TD]
[TD]X4: Ques Temp 1[/TD]
[TD]150[/TD]
[/TR]
[TR]
[TD]3[/TD]
[TD]X5: Ques Temp 5[/TD]
[TD]200[/TD]
[/TR]
[TR]
[TD]4[/TD]
[TD]Ques Total[/TD]
[TD]215[/TD]
[/TR]
[/TABLE]

Và thay vì button "Back to Index" trên đầu sheet "Table" thì có thể chỉnh lại thành text "Back To Index" dưới mỗi table
Vì dụ: text "Back To Index" ở ô A4, A44, A102, A105

Cám ơn anh và mọi người vì đã dành thời gian giúp mình nhé :)
 
Upvote 0
Tôi dùng công thức tự động cập nhật hyperlink, lấy số Base giúp bạn. Với điều kiện bạn luôn nhập liệu theo format bạn đã cung cấp


Row X1: Tên Title
Row X2: Text
Row X3: Bắt đầu với keyword "Table:"
Back to Index >> Phần này là hằng số nên tôi bỏ công thức vô ô đó, sau này bạn copy paste vô chổ mới là được.


Tham khảo từ 1 bài post của bác Ba Tê:
http://www.giaiphapexcel.com/forum/showthread.php?110402-giúp-em-lọc-tên-sản-phẩm/page2
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Dạ. cảm ơn anh. thật ra em muốn có macro/add-in để em và đồng nghiệp add vào và sử dụng cho nhiều dự án với format y như vậy sau này luôn :)
Vì orginal output của em chỉ đơn thuần là raw data, chưa có text: "Back To Index" dưới mỗi table.
Attached là original output của em
 
Lần chỉnh sửa cuối:
Upvote 0
- phần macro chắc các bạn khác đã giải quyết rồi :) phần tôi chỉ add thêm 1 cách làm khác dùng công thức thôi
- phần công thức bạn cứ nắm cell drag xuống thì nó sẽ cập nhật nếu sau này bạn thêm table :)
- xin nhường phần macro lại cho các chiến hữu khác nhé :)
 
Upvote 0
dạ. cám ơn anh đã dành thời gian cho topic này ạ :)
 
Upvote 0
Dạ. gần đúng rồi ạ.
nhưng cần chỉnh lại cho đẹp như sau, vì khi chạy button "Hyperlink" trong sheet "Index", title không hiện lên được tương ứng title từng table sheet "Table".
[TABLE="width: 446"]
[TR]
[TD="colspan: 3"]#TABLE INDEX#[/TD]
[/TR]
[TR]
[TD]Table No[/TD]
[TD]Table Title[/TD]
[TD]Base[/TD]
[/TR]
[TR]
[TD]1[/TD]
[TD]#TABLE INDEX#[/TD]
[TD]232[/TD]
[/TR]
[TR]
[TD]2[/TD]
[TD]Table!A41[/TD]
[TD]232[/TD]
[/TR]
[TR]
[TD]3[/TD]
[TD]Table!A99[/TD]
[TD]200[/TD]
[/TR]
[TR]
[TD]4[/TD]
[TD]Table!A147[/TD]
[TD]215[/TD]
[/TR]
[/TABLE]

-> phải như vầy thì hay quá:

[TABLE="width: 446"]
[TR]
[TD="colspan: 3"]#TABLE INDEX#[/TD]
[/TR]
[TR]
[TD]Table No[/TD]
[TD]Table Title[/TD]
[TD]Base[/TD]
[/TR]
[TR]
[TD]1[/TD]
[TD] X3: ques1[/TD]
[TD]232[/TD]
[/TR]
[TR]
[TD]2[/TD]
[TD]X4: Ques Temp 1[/TD]
[TD]150[/TD]
[/TR]
[TR]
[TD]3[/TD]
[TD]X5: Ques Temp 5[/TD]
[TD]200[/TD]
[/TR]
[TR]
[TD]4[/TD]
[TD]Ques Total[/TD]
[TD]215[/TD]
[/TR]
[/TABLE]

Và thay vì button "Back to Index" trên đầu sheet "Table" thì có thể chỉnh lại thành text "Back To Index" dưới mỗi table
Vì dụ: text "Back To Index" ở ô A4, A44, A102, A105

Cám ơn anh và mọi người vì đã dành thời gian giúp mình nhé :)
tại mình làm gấp quá để tranh thủ đi làm, mình text trên máy của mình thì không thấy bị lỗi, còn phần "Back to Index" thì nó cũng giống tương tự như thằng hyperlink thôi, nếu bạn đợi được tới ngày mai mình mới gửi file update lên cho bạn nha!
 
Upvote 0
Mình đã làm lại file cho bạn, đã chỉnh sửa lại code,bạn nên nhớ đừng đưa dòng dữ liệu này vào ột A vì thế sẽ dễ bị sai
Mã:
[TABLE="width: 408"]
[TR]
  [TD="width: 408"]Cell Contents:  <BR/>- Count<BR/ColumnPercentage<BR/>[/TD]
[/TR]
[/TABLE]
vì điều kiện code ở đây dựa vào 2 điều kiện chỗ tô màu đỏ nha:
Mã:
Private Sub CommandButton1_Click()Dim i As Long, Leng As Long, rEnd As Long, m As Long, n As Long, k As Long
Dim Ktu As String, Gtri As String
On Error Resume Next
rEnd = Sheet2.[a100000].End(xlUp).Row
Sheet1.[a3].Resize(10000, 3).Clear
For n = 1 To rEnd
    
[COLOR=#ff0000]    If Len(Sheet2.Cells(n, 1)) > 6 And Right(Sheet2.Cells(n, 1), 5) = "<BR/>" Then[/COLOR]
        Leng = Len(Sheet2.Cells(n, 1))
        If Leng > 6 Then
            For i = 1 To Leng
                m = 0
                Ktu = Right(Left(Sheet2.Cells(n, 1), i), 1)
[COLOR=#ff0000]                If Ktu = ":" Then[/COLOR]
                    m = i + 1
                    If m > 0 Then
                        k = k + 1
                        Gtri = Left(Right(Sheet2.Cells(n, 1), Leng - m), Leng - m - 5)
                        With Sheet1
                            .Cells(k + 2, 1) = k
                            .Cells(k + 2, 2) = Gtri
                            .Cells(k + 2, 2).Select
                            ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
                            "Table!A" & n & "", TextToDisplay:="" & Gtri & ""
                            .Cells(k + 2, 3) = Sheet2.Cells(n + 6, 2)
                        End With
                    End If
                    Exit For
                End If
            Next i
        End If
    End If
Next n
If k > 0 Then
    rEnd = Sheet1.[b100000].End(xlUp).Row
    With Sheet1.Range("a3:c" & rEnd)
        .Borders.LineStyle = 1
        .VerticalAlignment = xlCenter
        .HorizontalAlignment = xlCenter
    End With
End If


End Sub
 

File đính kèm

Upvote 0
Cám ơn anh nhiều lắm. Sau khi chạy macro thì mình tùy chỉnh lại yêu cầu cho output hoàn thiện với mọi dự án luôn, nếu được thì mình mong muốn như sau:

1/ Do raw data lúc nào cũng có dòng: "Cell Contents: <BR/>- Count<BR/>- Column Percentage<BR/>" -> lúc nào cũng xuất hiện ở cột A. Do đó có thể tùy chỉnh macro lại để ignore dòng này - HOẶC: Di chuyển qua cột khác (khác cột A), sau khi chạy macro tạo hyperlink xong thì move lại cột A ngay vị trí ban đầu.
2/ Raw data ban đầu thì lúc nào cũng chỉ có 1 sheet "Table". Cho nên mình sẽ tạo 1 add-in để click lệnh, sau đó chương trình tự tạo 1 sheet với tên "Index" và trong sheet "Index" lúc nào cũng có sẵn template với nội dung như sau:
[TABLE="width: 446"]
[TR]
[TD="colspan: 3"][/TD]
[/TR]
[/TABLE]
[TABLE="width: 446"]
[TR]
[TD="colspan: 3"]#TABLE INDEX#[/TD]
[/TR]
[TR]
[TD]Table No[/TD]
[TD]Table Title[/TD]
[TD]Base

[/TD]
[/TR]
[/TABLE]

3/ Và title bây giờ mình có điều chỉnh lại, lấy tự động vớ mong muốn như sau: trên mỗi dòng "Project..." thì lấy nguyên title "X3 : X3: Ques Temp 1", chỉ bỏ chữ "<BR/>"

[TABLE="width: 390"]
[TR]
[TD]X3 : X3: Ques Temp 1<BR/>[/TD]
[/TR]
[TR]
[TD]Project Test[/TD]
[/TR]
[TR]
[TD]Table: 574<BR/>Level: Top

4/ Và sau dòng: "Table: 574<BR/>Level: Top", mình insert text "Back To Index" để link về sheet "Index"

[TABLE="width: 390"]
[TR]
[TD]X3 : X3: Ques Temp 1<BR/>[/TD]
[/TR]
[TR]
[TD]Project Test[/TD]
[/TR]
[TR]
[TD]Table: 574<BR/>Level: Top[/TD]
[/TR]
[TR]
[TD]Back to Index


[/TD]
[/TR]
[/TABLE]
Ngày cuối tuần là để relax nhưng lại làm phiền anh, mong anh giúp lần này nữa nhé :)[/TD]
[/TR]
[/TABLE]
 
Upvote 0
Web KT

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

Back
Top Bottom