【发布时间】:2019-12-27 04:40:18
【问题描述】:
我觉得答案就在那里,但经过大量搜索和试验后,我仍然做不到。
因此可以在第一张图片中看到 O 列有一个逗号分隔的值列表。当用户双击包含列表的单元格时,我希望我的例程使用整个列表过滤列 A 上的数据。
我的代码如下:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("O:O")) Is Nothing Then
Sheet1.Cells.AutoFilter 'clear existing filters
Dim idArray() As String
idArray = Split(Target.Value, ",") 'store cell contents in array
Dim newIDArray(0 To 100) As String
Dim i As Long
For i = 0 To UBound(idArray)
newIDArray(i) = """" & CStr(idArray(i)) & """" 'wrap elements with quotes ... not sure if needed
Next
Sheet1.Range("$A$8").AutoFilter Field:=1, Criteria1:=newIDArray
End If
Cancel = False
End Sub
但是结果如下图。我看起来它正在使用 A 列中的过滤器,取消选择所有并显示结果....它根本没有使用逗号分隔列表中的值。
对正在发生的事情有什么想法吗?感谢阅读。
【问题讨论】:
-
我会通过在过滤之前检查最终数组的值来调试它。您加载它的方式可能有问题
标签: arrays excel vba autofilter