超链接代码显示下标超出范围错误VBA Excel [英] Hyperlink code shows Subscript out of range error vba excel

查看:104
本文介绍了超链接代码显示下标超出范围错误VBA Excel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个超链接vba代码,单击该代码可激活一个隐藏的工作表.但是由于某种原因,每次我跑步时,我都会收到一条错误消息

I have a hyperlink vba code that activates a hidden worksheet when clicked. But for some reason every time I run I get an error saying

下标超出范围"

"Subscript out of Range"

在代码Worksheets(MySheet).Visible = xlSheetVisible

代码是

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

Linkto = Target.SubAddress
Name = InStr(1, Linkto, "!")
If Name > 0 Then
    MySheet = Left(Linkto, Name - 1)
    Worksheets(MySheet).Visible = xlSheetVisible
    Worksheets(MySheet).Select
    MyAddr = Mid(Linkto, Name + 1)

    Worksheets(MySheet).Range(MyAddr).Select
 End If
End Sub

推荐答案

您应避免使用诸如名称"之类的变量名,它们可以是保留字.在这种情况下,我想Name将引用当前的工作表(设置了超链接的工作表)

You should avoid using variable names such as "Name" which could be reserved words. In this particular case, I guess Name will refer to the current worksheet (The one on which the Hyperlink is set)

通过将变量名称"替换为例如"myName"来尝试相同的代码

Try the same code by replacing the variable "Name" by, for example "myName"

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

  Linkto = Target.SubAddress
  myName = InStr(1, Linkto, "!")
  If myName > 0 Then

      MySheet = Left(Linkto, myName - 1)
      Worksheets(MySheet).Visible = xlSheetVisible
      Worksheets(MySheet).Select
      MyAddr = Mid(Linkto, myName + 1)
      Worksheets(MySheet).Range(MyAddr).Select

  End If
end sub

以及作为建议

  • 在VBA开头使用"OPTION EXPLICIT"来强制您显式声明变量
  • 使用与内容一致的变量名.您将变量称为名称",但实际上是在其中将惊叹号的位置存储在超链接目标中……有点令人困惑……

希望可以解决您的问题...

Hope that fixes your issue...

这篇关于超链接代码显示下标超出范围错误VBA Excel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆