交叉筛选时Excel崩溃
我有一个只读的2013工作簿,用作模板工具,数据模型连接到4个链接的透视图,并启用切片器交叉筛选。当我在一个切片器上选择“筛选选项”以筛选出另一个切片器上包含数据的所有选项时,我的工作簿崩溃 也就是说,切片器1有一个选项A、B、C等等交叉筛选时Excel崩溃,excel,vba,powerpivot,powerquery,pivot-chart,Excel,Vba,Powerpivot,Powerquery,Pivot Chart,我有一个只读的2013工作簿,用作模板工具,数据模型连接到4个链接的透视图,并启用切片器交叉筛选。当我在一个切片器上选择“筛选选项”以筛选出另一个切片器上包含数据的所有选项时,我的工作簿崩溃 也就是说,切片器1有一个选项A、B、C等等 选项A与切片器2上的子集1、2和3相关 选项B与切片器2上的子集4、5和6相关 如果切片器2选择了任何数据,并且我过滤切片器1以排除该选择的任何部分,我的工作簿将崩溃 不起作用的事情: 我重建了图表、切片器和连接,但仍然遇到同样的问题 我在另一个工作簿中构建
- 选项A与切片器2上的子集1、2和3相关
- 选项B与切片器2上的子集4、5和6相关
- 我重建了图表、切片器和连接,但仍然遇到同样的问题李>
- 我在另一个工作簿中构建了一个非常简单的模型,无法重现该问题李>
- 我关掉了活动
- 我注释掉了我的VBA
Faulting application name: EXCEL.EXE, version: 15.0.4797.1003, time stamp: 0x56bf05fc
Faulting module name: msolap110_xl.DLL, version: 0.0.0.0, time stamp: 0x55b0c5bf
我的问题是:
Private Sub myReloadDataModel()
If Range("myHasPath").Value = "True" Then
MsgBox "You need to enter a path to a valid target location.", vbOKOnly, "Bad Path"
Else
myUser = MsgBox("Are you sure you want Reload the Data Model with any csv data located in the target path?", vbOKCancel, "3. Load Data Model")
If myUser = vbOK Then
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Cursor = xlWait
myTime01 = Time
Sheets("Notes").Unprotect
Sheets("2. Get Table").Unprotect
ActiveWorkbook.RefreshAll
' ActiveWorkbook.Model.Refresh
' ActiveWorkbook.Connections("Query - myGetMasterSpan").Refresh
x = ActiveWorkbook.Connections("Query - myGetMasterSpan").ModelTables.Item(1).RecordCount
myTime02 = Time
myTime03 = Format(myTime02 - myTime01, "HH:MM:SS")
Sheets("2. Get Table").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowUsingPivotTables:=True
Application.Cursor = xlDefault
Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox Format(x, "#,##0") & " Records Loaded!" & vbNewLine _
& vbNewLine _
& "Total Update Time = " & myTime03, , "Update Completed"
End If
End If
End Sub
事件
这个潜艇为我获得了选择范围
Private Sub mySlicerMagic()
On Error GoTo 100
Set myX = ActiveWorkbook.SlicerCaches("Slicer_Pulse_Set").SlicerCacheLevels(1).SlicerItems
For i = 1 To myX.Count
If myX(i).Selected = True Then
x = x + 1
If x = 1 Then
myItemName01 = myX(i).SourceName
End If
myItemName02 = myX(i).SourceName
End If
Next
Range("myPulseRange")(1, 1) = myItemName01
Range("myPulseRange")(2, 1) = myItemName02
100
End Sub
能否检查Excel版本号以确保安装了最新的修复程序?或者,选项“直观地指示没有数据的项目”可能会对性能造成很大的影响:有一个更新我没有预料到,因为我启用了此Office产品的更新,它们应该自动下载和安装。对我来说,这显然是一个错误的假设。安装后没有提示我重新启动,但我还是重新启动了。不幸的是,更新没有解决这个问题。不过,我确实收到了一条新消息,将有关崩溃的信息发送给了微软,我做到了。以前运行的版本:15.0.4797.1003现在运行的版本:15.0.4805.1003My切片器设置为“隐藏没有数据的项目”。我尝试了两种设置。我的想法是,这两种设置之间的处理差异可能在某种程度上与此故障有关,但它会崩溃。更新后,我再次尝试切换此选项,但没有效果。@ZachH现在您使用的是最新版本,如果此情况仍然存在,则打开支持案例是最好的方法。您可以检查Excel版本号以确保安装了最新的修复程序吗?或者,选项“直观地指示没有数据的项目”可能会对性能造成很大的影响:有一个更新我没有预料到,因为我启用了此Office产品的更新,它们应该自动下载和安装。对我来说,这显然是一个错误的假设。安装后没有提示我重新启动,但我还是重新启动了。不幸的是,更新没有解决这个问题。不过,我确实收到了一条新消息,将有关崩溃的信息发送给了微软,我做到了。以前运行的版本:15.0.4797.1003现在运行的版本:15.0.4805.1003My切片器设置为“隐藏没有数据的项目”。我尝试了两种设置。我的想法是,这两种设置之间的处理差异可能在某种程度上与此故障有关,但它会崩溃。更新后,我再次尝试切换此选项,但没有效果。@ZachH现在您使用的是最新版本,如果它仍然存在,那么打开支持案例是最好的方法
Private Sub mySlicerMagic()
On Error GoTo 100
Set myX = ActiveWorkbook.SlicerCaches("Slicer_Pulse_Set").SlicerCacheLevels(1).SlicerItems
For i = 1 To myX.Count
If myX(i).Selected = True Then
x = x + 1
If x = 1 Then
myItemName01 = myX(i).SourceName
End If
myItemName02 = myX(i).SourceName
End If
Next
Range("myPulseRange")(1, 1) = myItemName01
Range("myPulseRange")(2, 1) = myItemName02
100
End Sub