【问题标题】:Using VBA: double clicking cell creates new sheet, cell is also hyperlinked to new sheet使用 VBA:双击单元格创建新工作表,单元格也超链接到新工作表
【发布时间】:2016-10-14 08:42:33
【问题描述】:

好的,所以我在这方面是全新的。工作中的新角色。我收到了这个 Excel 请求:

  1. 双击工作表中的任何单元格会创建一个新工作表。
  2. 双击的原始单元格现在变成一个超链接,链接到新创建的工作表。
  3. 删除了该单元格原来双击的双击功能。

老实说,我被困住了。我以前没有真正使用过 VBA 进行编程。我已经知道如何在双击时创建一个新工作表,并且我已经知道如何超链接。但我不知道如何超链接到新创建的工作表,并从该原始单元格中删除双击功能!

这就是我所拥有的……

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     Sheets.Add
End Sub

另外,如果我在这里违反任何规则,请原谅我,这是我第一次在这里发帖。非常感谢您的帮助!

【问题讨论】:

  • 我会给第一个问题+1。您已经展示了您尝试过什么/您拥有什么,解释了问题以及预期的结果是什么。超链接有时会很棘手。有很多第一个问题很少或只是问“为我做这个”。
  • 哇,谢谢!我期待着学习更多,变得更好。

标签: vba excel


【解决方案1】:

您走在正确的道路上,只需要更多组件。一个关键点是声明和使用对象变量(本例中为ws

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim ws As Worksheet

    ' Prevent screen flicker
    Application.ScreenUpdating = False

    ' Add worksheet
    Set ws = Me.Parent.Worksheets.Add

    ' Add Hyperlink
    Target.Hyperlinks.Add Anchor:=Target, Address:="", SubAddress:=ws.Cells(1, 1).Address(True, True, , True), TextToDisplay:=ws.Name & "!A1"

    ' Restore original sheet as active
    Me.Activate

    ' Disable original Doubleclick action
    Cancel = True

    ' Restore screen updating
    Application.ScreenUpdating = True
End Sub

【讨论】:

  • 一个很好的 Excel 资源(除了 SO)是 cPearson.Com
  • 哇,这是一个庞大的网站——我会在再次发布之前将其加入书签并引用它:)。感谢您的解决方案,我会尽快测试它!
  • 哎呀,多加评论抱歉。有效!我只删除了:", TextToDisplay:=ws.Name & "!A1" ",所以单元格中的原始文本仍然存在!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-13
  • 2014-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多