如何解决如何使用阵列从VBA中选择切片器? Excel 2016目标:获取切片器选择,清除切片器,运行宏,重新选择切片器
我在Sheet1(状态1和服务器)上有两个切片器。我想存储选定的元素,重置切片器,然后在运行排序宏后再次选择它们。这就是我所拥有的:
PATH
我认为问题出在以下部分。我只是不知道我在做什么错,因为我有点VBA新手。
Option Explicit
Sub GetSlicerNCSTatusSel()
Dim MyArrStatus() As Variant
Dim MyArrServer() As Variant
MyArrStatus = ArraylistofSelectedAndVisibleSlicerItems("Slicer_Status1")
MyArrServer = ArraylistofSelectedAndVisibleSlicerItems("Slicer_Server")
Dim slcr As SlicerCache
Dim slc As Slicer
Dim element As Variant
'Application.ScreenUpdating = False
For Each slcr In ActiveWorkbook.SlicerCaches
For Each slc In slcr.Slicers
If slc.Shape.Parent Is ActiveSheet Then
slcr.ClearManualFilter
Exit For
End If
Next slc
Next slcr
srtnc
For Each element In MyArrStatus
ActiveWorkbook.SlicerCaches("Slicer_Status1").SlicerItems(element).Selected = True
Next element
Application.ScreenUpdating = True
End Sub
Public Function ArraylistofSelectedAndVisibleSlicerItems(MySlicerName As String) As Variant
Dim ShortList() As Variant
Dim i As Integer: i = 0 'for iterate
Dim sC As SlicerCache
Dim sI As SlicerItem 'for iterate
Set sC = ThisWorkbook.Application.ActiveWorkbook.SlicerCaches(MySlicerName)
For Each sI In sC.SlicerItems
If sI.Selected = True And sI.HasData = True Then 'Here is the condition!!!
'Debug.Print sI.Name
ReDim Preserve ShortList(i)
ShortList(i) = sI.Value
i = i + 1
End If
Next sI
ArraylistofSelectedAndVisibleSlicerItems = ShortList
End Function
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。