问题描述
我在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 (将#修改为@)