我正在仪表板工作表上创建一个带有多个超链接的 excel。单击一个链接将打开另一个工作表,其中记录已过滤,其他链接将重置筛选器。
它适用于几个链接,而少数链接失败,并显示错误:运行时 1004 应用程序定义或对象定义错误。
链接工作:单元格 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
需要一些帮助来解决这个问题。感谢您的帮助。
单元格I11
、I14
与 B11
E11
中的链接之间的区别如下:
在I11
中,I14
首先设置链接,然后I11:J11
单元格,I14:J14
被合并。
在B11
中,E11
单元格B11:C11
,首先E11:F11
被合并,然后链接被设置为合并的单元格。
所以在B11:C11
中,E11:F11
链接Target
是合并的范围,而在I11
中,I14
链接Target
是单个单元格。这就是为什么Target.Range.Name
在B11:C11
和E11: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