Excel超链接宏错误运行时1004应用程序定义或对象定义错误

时间:2016-07-21 05:32:01

标签: excel vba macros

我正在仪表板上创建一个包含多个超链接的Excel。单击一个链接将打开另一个表,其中包含已过滤的记录,其他表重置了过滤器。

它适用于几个链接,而少数因错误而失败:运行时1004应用程序定义或对象定义错误。

链接工作:Cell I11,I14 链接投掷错误:B11,E11。

https://drive.google.com/open?id=0B-gwvoyXA0G0aUJZU3pIM3ZtVWM 是示例宏启用excel以供参考

以下代码:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)    
  Dim rngOpenTickets As Range  
  Dim rngMaxAge As Range  
  Dim rngPlannedFuture As Range  
  Dim rngTotalFuture As Range  

  Set rngOpenTickets = Range("TicketsOpen")  
  Set rngMaxAge = Range("TicketMaxAge")  
  Set rngPlannedFuture = Range("FuturePlanned")  
  Set rngTotalFuture = Range("TotalFuture")  

 If Target.Range.Name = rngPlannedFuture.Name Then  
    ApplyFilter 5, "<>"  
 ElseIf Target.Range.Name = rngMaxAge.Name Then  
    ApplyFilter 10, rngMaxAge.Text  
 ElseIf Target.Range.Name = rngTotalFuture.Name Or Target.Range.Name =   rngOpenTickets.Name Then  
     RemoveFilter  
  End If  
End Sub  

Sub RemoveFilter()  
    If ActiveSheet.FilterMode Then  
        ActiveSheet.ShowAllData  
    End If  
End Sub

Sub ApplyFilter(field As Integer, criteria As String)  
    Selection.AutoFilter  
    Selection.AutoFilter field:=field, Criteria1:=criteria  
End Sub  

需要一些帮助来解决这个问题。感谢帮助。

1 个答案:

答案 0 :(得分:0)

单元格I11I14B11E11中的链接之间的差异如下:

I11I14首先设置链接,然后合并单元格I11:J11I14:J14

B11E11首先合并单元格B11:C11E11:F11,然后将链接设置为合并的单元格。

因此,在B11:C11E11:F11中,链接Target是合并范围,而I11I14链接Target是唯一的细胞。这就是为什么Target.Range.NameB11:C11E11:F11而失败的原因。

如果你改为Target.Range.Item(1).Name,它将适用于两者 - 合并的单元格链接目标和单个单元格链接目标。

  If Target.Range.Item(1).Name = rngPlannedFuture.Name Then
    ApplyFilter 5, "<>"
  ElseIf Target.Range.Item(1).Name = rngMaxAge.Name Then
    ApplyFilter 10, rngMaxAge.Text
  ElseIf Target.Range.Item(1).Name = rngTotalFuture.Name Or Target.Range.Item(1).Name = rngOpenTickets.Name Then
     RemoveFilter
  End If