如何将超链接字符串从一个工作簿传递到另一个工作簿

时间:2015-12-14 03:58:18

标签: excel vba excel-vba

我有两本工作簿" UI.xlsm"和#34; Gas_Insulated_MV_Circuit.xlsm",在第一个工作簿(UI.xlsm)中,我维护了特定列中的超链接列表,点击链接,它将带我到相应的其他工作簿。

任务是从" UI.xlsm"中捕获所点击的超链接的文本。工作簿,我必须在" Gas_Insulated_MV_Circuit.xlsm"

中使用相同的值

以下是来自UI.xlsm工作簿的代码,我在其中捕获单击的超链接单元格文本并将其存储为字符串

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    Dim BR as String
    BR = Target.Range.Text  'Here i'm storing the clicked cell text 
End Sub

现在我需要在另一个工作簿中使用BR字符串值" Gas_Insulated_MV_Circuit.xlsm"

Public BR as String   ' I have declared BR as a public variable
  Private Sub CommandButton27_Click()
  Dim WbUI as Workbook
  Dim WsUI as Worksheet
  Dim File1 as string


  Set WbUI = Workbooks ("UI.xlsm")
  Set WsUI = WbUI.Sheets("Sheet1")

  File1 = BR ' I want something like this, where i can assign BR value from                        
                UI.xlsm workbook to File 1 of the current workbook

End Sub

任何人都可以帮助我实现它。

1 个答案:

答案 0 :(得分:0)

我在 UI.xlsm 工作簿中使用=Sheet1!A1创建了一个已定义的名称(例如 myBR )作为指的是: 。使用已定义的名称“种子”,我将您的Worksheet.FollowHyperlink事件宏更改为

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
        ThisWorkbook.Names("myBR").RefersToR1C1 = _
          Chr(61) & Chr(34) & Target.Range.Text & Chr(34)
End Sub

Gas_Insulated_MV_Circuit.xlsm 工作簿中,我可以使用

检索最近点击的超链接的单元格文本(即TextToDisplay属性)
=UI.xlsm!myBR

在两个工作簿打开的情况下,单元格值立即发生变化。在VBA中分配字符串或整数变量应该没问题。