我正在仪表板上创建一个包含多个超链接的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
需要一些帮助来解决这个问题。感谢帮助。
答案 0 :(得分:0)
单元格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