ฉันจะสร้างไฮเปอร์ลิงก์ไปยังส่วนเฉพาะของไฟล์ HTML ใน Excel ได้อย่างไร


8

ฉันมีไฟล์ HTML ซึ่งมีจุดยึดอยู่ภายใน ฉันสามารถไปยังส่วนเฉพาะผ่านทางเบราว์เซอร์ถ้าฉันระบุชื่อจุดยึดดังนั้นเมื่อฉันเขียน
file://<html_path>/<html_file>.html#<anchor_name>
ในกล่องที่อยู่ของเบราว์เซอร์ไฟล์จะเปิดขึ้นและเลื่อนไปยังส่วนที่ถูกต้อง

ถ้าฉันวางลิงค์เดียวกันลงในHYPERLINKฟังก์ชั่นใน Excel ลิงก์ก็แค่เปิดเว็บเพจตัด#ส่วนและไม่เลื่อนไปที่ส่วนที่ระบุ ถ้าฉันวางลิงค์ไปยังหน้าเว็บที่มีส่วนสมอในHYPERLINKฟังก์ชั่นดูเหมือนว่าจะทำงานอย่างถูกต้องดังนั้นการhttp://เชื่อมโยงกับ#จะไม่ถูกตัดแต่งและยังคงทำงาน

การค้นหา Google ส่งคืนโพสต์ฟอรัมนี้และบทความ KB หลายฉบับที่ระบุว่าแฮชไม่สามารถใช้ในชื่อไฟล์ภายในสำนักงานได้แม้ว่าจะเป็นอักขระชื่อไฟล์ที่ถูกต้องก็ตาม หน้าเดียวกันระบุว่าสิ่งนี้ได้รับการแก้ไขใน Excel 2010 แต่ฉันใช้รุ่น 2010 และเห็นได้ชัดว่ามันยังคงเป็นปัญหาอยู่

มีวิธีแก้ปัญหานี้หรือไม่? ฉันต้องการเชื่อมโยงทุกแถวไปยังส่วนอื่นในไฟล์เป้าหมายและมี 1,000+ แถวดังนั้นตัวเลือกในการแบ่งไฟล์ html ดั้งเดิมไปหลาย ๆ อันหรือสร้าง URL ที่แยกต่างหากไปยังแต่ละส่วนและลิงก์ไปยังส่วนอื่น ๆ แทนจะสร้างความยุ่งเหยิง ไฟล์


ฉันไม่สามารถตอบคำถามนี้ได้เนื่องจากฉันไม่สามารถทดสอบได้ในตอนนี้ แต่ให้คุณทดสอบโดยใช้การเข้ารหัสดังนั้นใช้ '% 23' แทน '#'
HTDutchy

ฉันเพิ่งตรวจสอบสิ่งนี้ดูเหมือนจะไม่ทำงาน Excel ปรากฏข้อความแสดงข้อผิดพลาด "ไม่สามารถเปิดไฟล์ที่ระบุ"
JohnoBoy

@terdon 'Pound sign / key' เป็นชื่อที่ถูกต้องสำหรับ#ตัวละครโปรดดูบทความ WikiPediaและสังเกตเห็นโพสต์ในฟอรัมและบทความ KB ที่เชื่อมโยงกับมันใช้ชื่อเดียวกัน
JohnoBoy

@ JohnoBoy ดังนั้นมันจึงเป็น ฉันยืนแก้ไขแล้วขอโทษ อย่าลังเลที่จะย้อนกลับการแก้ไขของฉัน
terdon

คำตอบ:


2

ลองสิ่งนี้ สำหรับแต่ละแถวคุณจะต้องมีสองคอลัมน์ อันแรกจะมีชื่อบุ๊กมาร์กของคุณสำหรับแต่ละแถว ที่สองจะมีการเชื่อมโยงหลายมิติชี้ไปที่ตัวเอง

หากต้องการแทรกไฮเปอร์ลิงก์ที่อ้างอิงตนเองสำหรับหลายแถวให้เรียกใช้แมโครดังนี้:

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

ตอนนี้คุณต้องย่อยเพื่อเปิดเบราว์เซอร์ไปยังตำแหน่งที่ถูกต้อง แก้ไขสิ่งนี้เพื่อให้เส้นทางของไฟล์และเบราว์เซอร์ถูกต้อง:

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

ในที่สุดคุณจะต้องเพิ่มเหตุการณ์ Worksheet_FollowHyperlink สำหรับแผ่นงานที่มีรายการของคุณ:

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

หวังว่าจะทำมันได้!


ฉันจะตรวจสอบเรื่องนี้และรายงานกลับมาขอบคุณ
JohnoBoy

@JohnoBoy - มันเหมาะกับคุณหรือเปล่า?
Johnny Utahh

เมื่อนานมานี้ฉันเชื่อว่าฉันเลิกใช้ไฮเปอร์ลิงก์ไปพร้อม ๆ กัน
JohnoBoy

0

นี่เป็นอีกวิธีการหนึ่งสำหรับคุณถ้าคุณไม่ต้องการใช้การเข้ารหัส VBA คุณยังสามารถใช้ฟังก์ชัน "ไฮเปอร์ลิงก์" ของ Excel ได้ นี่คือคำแนะนำทีละขั้นตอนในการทำ

ไฟล์ออนไลน์: ขั้นตอนที่ 1: สมมุติว่าชื่อไฟล์ของคุณคือ: http://en.wikipedia.org/wiki/Intel_Core ขั้นตอนที่ 2: ตอนนี้เพิ่มชื่อสมอของคุณใน A1: A4
Core_Duo
Core_Solo
Core_2_Duo
Core_i7
ขั้นตอนที่ 3: ในเซลล์ B2 ป้อนสิ่งนี้ :

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

ขั้นตอนที่ 4: คลิกและลากเพื่อใช้กับส่วนที่เหลือของเซลล์
ทดสอบการทำงาน !!!


1
น่าเสียดายที่ Kamalam ผู้โพสต์ต้นฉบับกำลังหาวิธีทำไฟล์ที่โฮสต์อยู่ในไดรฟ์ C: หากคุณลองอีกครั้งโดยใช้วิธีfile://C:/นี้จะไม่ทำงาน มันเป็นเรื่องน่าละอายเพราะมันจะง่ายกว่านี้หากใช้งานได้!
Andi Mohr

นอกจากนี้ยังไม่สามารถใช้งานบนเว็บได้ด้วย
Gerrat

-1

หากฉันเข้าใจคำถามของคุณได้ดีนี่คือขอบเขตงานที่มา = ที่นี่การ หลีกเลี่ยงปัญหาหากต้องการแก้ไขปัญหานี้ให้ใช้วิธีใดวิธีหนึ่งต่อไปนี้ วิธีที่ 1

เปลี่ยนชื่อไฟล์ด้วยชื่อที่ไม่รวมเครื่องหมายปอนด์แล้วแก้ไขหรือสร้างการเชื่อมโยงหลายมิติใหม่

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการเปลี่ยนชื่อไฟล์ใน Windows โปรดดูเอกสารที่พิมพ์โดย Windows หรือวิธีใช้ออนไลน์

หากต้องการแก้ไขไฮเปอร์ลิงก์ให้ทำตามขั้นตอนเหล่านี้:

สำหรับ Office 2003 และ Office รุ่นก่อนหน้า: คลิกขวาที่เซลล์ที่มีการเชื่อมโยงหลายมิติปัญหา บนเมนูทางลัดที่ปรากฏขึ้นให้ชี้ไปที่ไฮเปอร์ลิงก์แล้วคลิกแก้ไขไฮเปอร์ลิงก์ ในกล่องพิมพ์ชื่อไฟล์หรือเว็บเพจให้พิมพ์ชื่อของไฟล์ที่คุณกำลังลิงค์ไป หากคุณไม่ทราบชื่อของไฟล์ให้คลิกไฟล์และเรียกดูไฟล์ คลิกตกลง

สำหรับโปรแกรม Office 2007 และ Office 2010: คลิกขวาที่เซลล์ที่มีปัญหาการเชื่อมโยงหลายมิติแล้วชี้ไปที่แก้ไขการเชื่อมโยงหลายมิติ ในกล่องที่อยู่ให้พิมพ์ชื่อของไฟล์ที่คุณกำลังลิงก์ไป หากคุณไม่ทราบชื่อไฟล์ให้ใช้เครื่องมือค้นหาบนบรรทัดค้นหาใน ... เพื่อค้นหาไฟล์ เลือกไฟล์แล้วคลิกตกลง วิธีที่ 2

ใช้คำสั่ง Paste as Hyperlink:

สำหรับ Office 2003 และรุ่นก่อนหน้า: เปิดเอกสารที่คุณพยายามเชื่อมโยง (ซึ่งมีเครื่องหมาย # อยู่ในชื่อ) คัดลอกเซลล์ที่คุณต้องการลิงก์ ในเอกสารของคุณบนเมนูแก้ไขคลิกวางเป็นไฮเปอร์ลิงก์

สำหรับโปรแกรม Office 2007 และ Office 2010: เปิดเอกสารที่คุณพยายามเชื่อมโยง นี่คือเอกสารที่มีเครื่องหมาย # อยู่ในชื่อ คัดลอกเซลล์ที่คุณต้องการลิงก์ ในเอกสารของคุณคลิกเซลล์ที่คุณต้องการให้ไฮเปอร์ลิงก์ปรากฏ บนแท็บหน้าแรกให้คลิกลูกศรด้านล่างวางในกลุ่มคลิปบอร์ดแล้วคลิกวางเป็นไฮเปอร์ลิงก์

หากคุณใช้รหัส VBA บรรทัดนี้อาจช่วยฉันทดสอบมันทำงานได้ทั้ง chrome และ firefox
ActiveSheet.Hyperlinks.Add Anchor: = การเลือกที่อยู่: = "C: \ path \ to \ your \ file.htm" , SubAddress: = "nameOfYourAnchor", TextToDisplay: = "ข้อความที่จะแสดง")

ที่นี่ nameOfYourAnchor โดยไม่มี # Sym เช่นหากลิงก์ของคุณคือC: / ผู้ใช้ / [ผู้ใช้] / เดสก์ท็อป / Intel Core - Wikipedia, สารานุกรมฟรี htm # Core_i3รหัสของคุณจะเป็น ( ActiveSheet.Hyperlinks.Add Anchor: = การเลือกที่อยู่: = "C: / ผู้ใช้ / ผู้ใช้ / เดสก์ท็อป / Intel Core - วิกิพีเดียสารานุกรมฟรี", ที่อยู่ย่อย: = "Core_i3", TextToDisplay: = "ข้อความที่จะแสดง" )
หวังว่านี่จะช่วยได้


ปัญหาคือไฟล์ไม่รวมเครื่องหมายปอนด์ในชื่อ ฉันใช้เครื่องหมายปอนด์เพื่อเชื่อมโยงไปยังส่วนเฉพาะในไฟล์
JohnoBoy

2
ดูสองย่อหน้าสุดท้าย
kamalam

@kamalam บนพื้นผิวนี่เป็นทางออกที่เรียบร้อยมาก อย่างไรก็ตามฉันไม่สามารถใช้รหัสนี้ในการทำงานได้? คุณช่วยโพสต์ย่อยเต็มรูปแบบที่เหมาะกับคุณได้ไหม?
Andi Mohr

-1

โดยทั่วไปแล้วต่อไปนี้ใช้งานได้กับ Windows 7 กับ Excel 2007 ไฟล์ดังกล่าวจะถูกจัดวางด้วยสเปรดชีต เนื้อหาของเซลล์:

= HYPERLINK ("dump_faults_current_leg_bite.htm # BiteRec_000", "BITE บันทึก 1/35")

มีเดสก์ท็อปพีซีบางเครื่องที่นี่ซึ่งมีปัญหากับลิงก์นี้อย่างไรก็ตามได้รับข้อผิดพลาด "ไม่สามารถเปิดไฟล์ที่ระบุ"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.