Làm cách nào tôi có thể tạo siêu liên kết đến các phần cụ thể của tệp HTML trong Excel?


8

Tôi có một tệp HTML bao gồm các neo trong đó. Tôi có thể đến một phần cụ thể thông qua trình duyệt nếu tôi chỉ định tên neo, vì vậy khi tôi viết
file://<html_path>/<html_file>.html#<anchor_name>
vào hộp địa chỉ trình duyệt của mình, tệp sẽ mở và cuộn đến phần chính xác.

Nếu tôi đặt cùng một liên kết vào một HYPERLINKhàm trong Excel, liên kết sẽ chỉ mở trang web, cắt bớt #phần đó và không cuộn đến phần được chỉ định. Nếu tôi đặt một liên kết đến một trang web có một phần neo trong HYPERLINKchức năng, nó dường như hoạt động chính xác, vì vậy http://các liên kết với #sẽ không bị cắt và vẫn hoạt động.

Tìm kiếm Google trả về bài đăng trên diễn đàn này và một số bài viết KB có thể sử dụng hàm băm trong tên tệp trong văn phòng mặc dù đó là ký tự tên tệp hợp lệ. Cùng một trang cho biết điều này đã được giải quyết trong Excel 2010 nhưng tôi đang sử dụng phiên bản 2010 và rõ ràng nó vẫn là một vấn đề.

Có một cách giải quyết cho điều này? Tôi dự định liên kết mỗi hàng với một phần khác nhau trong tệp mục tiêu và có hơn 1000 hàng, vì vậy tùy chọn ngắt tệp html gốc thành nhiều hoặc tạo các URL riêng biệt cho mỗi phần và thay vào đó sẽ tạo ra sự lộn xộn các tập tin.


Tôi không thể đưa ra câu trả lời vì tôi không thể kiểm tra ngay bây giờ nhưng bạn đã kiểm tra bằng cách sử dụng mã hóa nên sử dụng '% 23' thay vì '#'
HTDutchy

Tôi chỉ kiểm tra cái này, nó dường như không hoạt động. Excel xuất hiện một thông báo lỗi "Không thể mở tệp được chỉ định"
JohnoBoy

@terdon 'Dấu hiệu / khóa' là tên hợp lệ cho #nhân vật, xem bài viết WikiPedia , cũng chú ý bài đăng trên diễn đàn và các bài viết KB được liên kết với nó sử dụng cùng tên
JohnoBoy

@JohnoBoy, nó là như vậy. Tôi đứng sửa, xin lỗi. Hãy quay trở lại chỉnh sửa của tôi.
terdon

Câu trả lời:


2

Thử cái này. Đối với mỗi hàng, bạn sẽ cần hai cột. Đầu tiên sẽ chứa tên của dấu trang của bạn cho mỗi hàng. Thứ hai sẽ chứa một siêu liên kết, chỉ vào chính nó.

Để chèn siêu liên kết tự tham chiếu cho nhiều hàng, hãy chạy một macro như thế này:

Sub AddHyperlinksPointingToOwnCell()

   For i = 1 To 100

   Range("A" & i).Select
   ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
       "Sheet1!A" & i, TextToDisplay:="Click Here!"

   ActiveCell.Offset(1, 0).Select

   Next i

End Sub

Bây giờ bạn cần một phụ để mở trình duyệt đến đúng vị trí. Chỉnh sửa điều này để đường dẫn tệp và trình duyệt là chính xác:

Sub GoToBookmark()

    Dim ThisRow As Integer
    Dim ThisCol As Integer
    Dim BookmarkName As String

    ThisRow = ActiveCell.Row
    ThisCol = ActiveCell.Column
    BookmarkName = Cells(ThisRow, ThisCol - 1).Value
        'This is looking in the cell to the left for the bookmark name

    If BookmarkName = "" Then
        Exit Sub
    End If

    Shell "C:\Program Files\Internet Explorer\IEXPLORE.EXE " & _
        "C:\PathRoot\Folder\filename.html#" & BookmarkName & ", vbNormalFocus"

End Sub

Cuối cùng, bạn sẽ cần thêm một sự kiện Worksheet_FollowHyperlink cho trang tính chứa danh sách của bạn:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    Run ("GoToBookmark")
End Sub

Hy vọng rằng nên làm điều đó!


Tôi sẽ xem xét vấn đề này và báo cáo lại, cảm ơn
JohnoBoy

@JohnoBoy - đã làm việc này cho bạn?
Johnny Utahh

Điều này đã có từ lâu, tôi tin rằng tôi đã từ bỏ các siêu liên kết hoàn toàn.
JohnoBoy

0

Đây là một giải pháp khác cho bạn, nếu bạn không muốn sử dụng mã hóa VBA, bạn vẫn có thể sử dụng chức năng "siêu liên kết" của Excel. Dưới đây là hướng dẫn từng bước để làm điều đó.

tệp trực tuyến: Bước 1: giả sử tên tệp của bạn là: http://en.wikipedia.org/wiki/Intel_Core Bước 2: bây giờ thêm tên neo của bạn vào A1: A4
Core_Duo
Core_Solo
Core_2_Duo
Core_i7
Bước 3: trong ô B2 nhập vào đây :

=HYPERLINK("http://en.wikipedia.org/wiki/Core_i3#"&A2,"A2")  

Bước 4: nhấp và kéo để áp dụng cho các ô còn lại được
thử nghiệm !!!


1
Thật không may, kamalam, người đăng ban đầu đang tìm cách làm điều này cho các tệp được lưu trữ cục bộ trên ổ C :. Nếu bạn thử lại lần nữa bằng cách sử dụng file://C:/thì không được. Thật xấu hổ vì nó sẽ dễ dàng hơn nhiều nếu nó hoạt động!
Andi Mohr

Ngoài ra, điều này thậm chí không hoạt động trên web
Gerrat

-1

Nếu tôi không hiểu rõ câu hỏi của bạn thì đây là một công việc Nguồn = Ở đây LÀM VIỆC Để giải quyết vấn đề này, hãy sử dụng một trong các phương pháp sau. Phương pháp 1

Đổi tên tệp với tên không bao gồm dấu thăng, sau đó chỉnh sửa hoặc tạo lại siêu liên kết.

Để biết thêm thông tin về cách đổi tên tệp trong Windows, hãy xem tài liệu in trên Windows hoặc Trợ giúp trực tuyến.

Để chỉnh sửa siêu liên kết, hãy làm theo các bước sau:

Đối với Office 2003 và các phiên bản trước của Office: Bấm chuột phải vào ô chứa siêu liên kết có vấn đề. Trên menu phím tắt xuất hiện, trỏ đến Siêu liên kết và nhấp vào Chỉnh sửa Siêu liên kết. Trong hộp Nhập tệp hoặc tên trang Web, hãy nhập tên của tệp mà bạn đang liên kết đến. Nếu bạn không biết tên của tệp, bấm vào Tệp và duyệt đến tệp. Nhấn OK.

Đối với các chương trình Office 2007 và Office 2010: Bấm chuột phải vào ô chứa siêu liên kết sự cố, rồi trỏ đến Chỉnh sửa siêu liên kết. Trong hộp Địa chỉ, nhập tên của tệp mà bạn đang liên kết đến. Nếu bạn không biết tên của tệp, hãy sử dụng các công cụ tìm kiếm trên dòng Tìm trong ... để xác định vị trí tệp. Chọn tệp, rồi bấm OK. Cách 2

Sử dụng lệnh Paste as Hyperlink:

Đối với Office 2003 và các phiên bản trước đó: Mở tài liệu mà bạn đang cố liên kết đến (có chứa dấu # trong tên). Sao chép ô mà bạn muốn liên kết đến. Trong tài liệu của bạn, trên menu Chỉnh sửa, nhấp Dán dưới dạng Siêu liên kết.

Đối với các chương trình Office 2007 và Office 2010: Mở tài liệu mà bạn đang cố liên kết đến. Đây là tài liệu có chứa dấu # trong tên. Sao chép ô mà bạn muốn liên kết đến. Trong tài liệu của bạn, nhấp vào ô mà bạn muốn siêu liên kết xuất hiện. Trên tab Trang chủ, bấm vào mũi tên bên dưới Dán trong nhóm Bảng tạm, rồi bấm Dán dưới dạng Siêu liên kết

nếu bạn đang sử dụng mã VBA, dòng này có thể giúp tôi đã kiểm tra nó. Nó hoạt động trong cả chrome và firefox
ActiveSheet.Hyperlinks.Add Anchor: = Selection, Địa chỉ: = "C: \ path \ to \ your \ file.htm" , SubAddress: = "nameOfYourAnchor", TextToDisplay: = "văn bản để hiển thị")

đây nameOfYourAnchor w / o # Sym ví dụ nếu liên kết của bạn là C: / Users / [User] / Desktop / Intel Core - Wikipedia, miễn phí encyclopedia.htm # Core_i3 mã của bạn sẽ được ( ActiveSheet.Hyperlinks.Add Neo: = Lựa chọn, Địa chỉ: = "C: / Người dùng / Người dùng / Máy tính để bàn / Intel Core - Wikipedia, bách khoa toàn thư miễn phí.htm", SubAddress: = "Core_i3", TextToDisplay: = "text to display" )
hy vọng điều này có ích.


Vấn đề là, tập tin không bao gồm dấu thăng trong tên của nó. Tôi sử dụng dấu thăng để liên kết đến một phần cụ thể trong tệp
thăng JohnoBoy

2
có một cái nhìn vào hai đoạn cuối.
kamalam

@kamalam, trên bề mặt đây là một giải pháp rất gọn gàng. Tuy nhiên tôi không thể có được mã này để làm việc? Bạn có thể gửi đầy đủ phụ làm việc cho bạn?
Andi Mohr

-1

Phần sau thường hoạt động trên Windows 7 với Excel 2007. Tệp được sắp xếp chung với bảng tính. Nội dung ô:

= HYPERLINK ("dump_faults_cản_leg_bite.htm # BiteRec_000", "Bản ghi BITE 1/35")

Có một số máy tính để bàn ở đây đang gặp sự cố với liên kết này, tuy nhiên, gặp lỗi "Không thể mở tệp được chỉ định".

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.