ทำรายการแบบเลื่อนลงแสดงไฮเปอร์ลิงก์


3

ฉันมีการรวบรวมหมายเลขชิ้นส่วนที่แตกต่างกันทั้งหมดสำหรับรุ่นที่แตกต่างกันของส่วนเดียวและแต่ละส่วนจะเชื่อมโยงหลายมิติกับรูปวาดที่แตกต่างกันของพวกเขาในรูปแบบ pdf ฉันต้องการนำพวกเขาไปไว้ในรายการการตรวจสอบความถูกต้องของข้อมูลเพื่อให้ใครบางคนสามารถเลือกรุ่นที่ต้องการได้ แต่ไฮเปอร์ลิงก์จะไม่ "ไปกับ" เซลล์เมื่อพวกเขาถูกเลือก ฉันจะได้รับการเชื่อมโยงหลายมิติที่จะดำเนินการผ่านสำหรับแต่ละรายการที่แตกต่างกันในรายการได้อย่างไร

ฉันสร้างตารางเล็ก ๆ ที่มีหมายเลขชิ้นส่วนแต่ละอันและลิงก์ที่เกี่ยวข้องไปยังตำแหน่งเซิร์ฟเวอร์ไฟล์ด้วยข้อความธรรมดา จากนั้นฉันสามารถมีดร็อปดาวน์ที่เลือกส่วนใดก็ได้และเซลล์ที่สองที่ใช้การเลือกนั้นเพื่อสร้างไฮเปอร์ลิงก์ที่ถูกต้องจากตาราง ปัญหาคือการแก้ปัญหานี้ต้องใช้ 2 เซลล์ที่แตกต่างกันที่ฉันมีห้องสำหรับหนึ่ง มีวิธีรับรายการแบบเลื่อนลงของฉันเพื่อเปลี่ยนการเชื่อมโยงหลายมิติในเซลล์หรือไม่


บางทีคุณอาจต้องใช้มาโครในการทำเช่นนั้นฉันไม่เห็นวิธีที่จะทำได้
MátéJuhász

คำตอบ:


0

ฉันได้ลองทำสิ่งที่คล้ายกับที่คุณกำลังจะไป โชคไม่ดีที่ไม่มีสูตร excel ในการส่งคืน URL ที่ฝังตัวของเซลล์ วิธีเดียวในการเรียกข้อมูลนี้คือผ่าน VBA

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

นี่คือตัวอย่างเพื่อให้คุณเริ่มจับภาพเมื่อเซลล์เปลี่ยนแปลง:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range

' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("A1:C10")

If Not Application.Intersect(KeyCells, Range(Target.Address)) _
       Is Nothing Then

    ' Display a message when one of the designated cells has been 
    ' changed.
    ' Place your code here.
    MsgBox "Cell " & Target.Address & " has changed."

End If
End Sub

ปรับช่วงที่แสดงที่นี่เป็นช่วงของคุณเอง

อย่าลืมวางรหัสนี้ไว้ใน "ThisWorkbook":

ป้อนคำอธิบายรูปภาพที่นี่

  1. ภายในเหตุการณ์นั้นจะรวบรวมว่าเป็นเซลล์ใดและเชื่อมต่อกับไฮเปอร์ลิงก์ใด
  2. ใช้ VBA เพื่อบอกคุณว่าไฮเปอร์ลิงก์อยู่ในเซลล์นั้นโดยใช้ฟังก์ชั่นที่คล้ายกับสิ่งนี้:

ตัวอย่าง:

Option Explicit
Function HyperLinkText(rg As Range)
    Dim sFormula As String, S As String
    Dim L As Long
    Dim H As Hyperlink, HS As Hyperlinks

sFormula = rg.Formula
L = InStr(1, sFormula, "HYPERLINK(""", vbBinaryCompare)

If L > 0 Then
    S = Mid(sFormula, L + 11)
    S = Left(S, InStr(S, """") - 1)
Else
    Set HS = rg.Worksheet.Hyperlinks
    For Each H In HS
        If H.Range = rg Then
            S = H.Address
        End If
    Next H
End If

HyperLinkText = S

End Function

ฉันไม่รู้ว่าคุณคุ้นเคยกับ VBA อย่างไร หากคุณต้องการความช่วยเหลือเพิ่มเติมในส่วนแรกแจ้งให้เราทราบ


ขอบคุณสำหรับความช่วยเหลือ! ฉันสามารถเปิดโปรแกรมแก้ไข VBA และเพิ่มรหัสได้ แต่ฉันไม่รู้ว่าภายในโค้ดควรระบุเซลล์ใดให้ตรวจสอบ ฉันใช้ MATLAB แต่ก็เป็นเช่นนั้น
Jacob Whiteman

@JacobWhiteman ฉันได้เพิ่มโค้ดตัวอย่างบางส่วนเพื่อช่วยให้คุณเริ่มต้นกับส่วนเริ่มต้น หวังว่านี่จะทำให้คุณได้ผลลัพธ์ เพียงแค่เล่นรอบกับเหตุการณ์แรกที่ฉันแสดงจนกว่าคุณจะเข้าใจมันอย่างเต็มที่แล้วย้ายไปเพิ่มรหัสของคุณเอง
Eric F

เหตุการณ์แรกทำงานได้อย่างสมบูรณ์แบบ แต่ฉันไม่แน่ใจว่าจะใช้งานเหตุการณ์ที่สองได้อย่างไร มันทำอะไรกันแน่? ควรมีวิธีใช้ VBA และ VLOOKUP และ / หรือ INDIRECT เพื่อตรวจสอบข้อความในเซลล์และจับคู่กับการเชื่อมโยงหลายมิติที่ถูกต้องหรือไม่
Jacob Whiteman

ที่อยู่เป็นที่เก็บการเชื่อมโยงหลายมิติไม่ใช่ค่าของมัน
Eric F

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