excel - 错误 1004 - 文件复制/名称更改后在 OLAP 多维数据集中找不到项目
问题描述
我有一个通过 PowerPivot 连接到数据模型的工作簿,并根据通过差异过程收集的给定数组过滤生成的数据透视表。
Sub AccrualPivot()
'Filter the data for the accrual entries that have been made.
Dim myArray() As Variant
Dim myR As Range
Sheets("Tables").Activate
Sheets("Tables").Range("JournalNum1").Select
Set myR = Sheets("Tables").Range("JournalNum1")
ReDim myArray(0 To myR.Cells.Count - 1)
Sheets("Data").Select
ActiveSheet.PivotTables("AccrualPivot").PivotFields( _
"[Query].[DataEntry].[DataEntry]").ClearAllFilters
ActiveSheet.PivotTables("AccrualPivot").PivotFields( _
"[Query].[JournalNum].[JournalNum]").ClearAllFilters
For i = 0 To myR.Cells.Count - 1
myArray(i) = "[Query].[JournalNum].&[" & myR.Cells(i + 1).Value & "]"
Next i
'ERROR THROWS HERE
ActiveSheet.PivotTables("AccrualPivot").PivotFields( _
"[Query].[JournalNum].[JournalNum]").VisibleItemsList = myArray
'This filters out the Data entries, which need to be included in a separate pivot.
ActiveSheet.PivotTables("AccrualPivot").PivotFields( _
"[Query].[DataEntry].[DataEntry]").CurrentPageName = _
"[Query].[DataEntry].&[0]"
End Sub
指示行上的错误:
运行时错误“1004”:在 OLAP 多维数据集中找不到该项目。
当我在这条线上看时,两个表达式都是 Variants 并且 myArray 已经填充了必要的信息。踢球者(我假设是根)是这在我的原始文件中有效。但我需要能够将每个月的工作簿另存为滚动。
我需要一个 4.30、5.31 等的文件。如果我将工作簿保存为下个月,更改日期并运行所有内容,它就可以工作。但是,如果我关闭该文件,重新打开并尝试运行,则会收到 1004 错误。
在模块中没有任何地方引用文件名或文件路径。它们甚至保存在相同的路径中,就像单独的月份一样,并且所有工作表的名称都相同。我假设它嵌入在我找不到的某个地方。
解决方案
我最近遇到了这个错误,发现Delora Bradish很有帮助:重建数据模型并再次运行代码。
powerquery 数据模型很脆弱,重命名表时会产生不可预知的后果。此外,如果您正在编写模型构建脚本,那么添加表格的顺序很重要;尽管可以同时添加表(多核处理),并且通常工作得很好,但有时生成的模型会在某处丢失表引用,并且您会收到此错误。更改加载顺序以确保大文件的良好分离。
如果您使用的是 powerquery,您应该不时有一个干净重建数据模型的计划。
推荐阅读
- python - 无法在 Mac 上创建带有子进程的新控制台
- reactjs - 如何配置 webpack-bundle-analyzer 进行反应?
- java - 尝试通过运行“mvn test”运行测试时 JVM 崩溃
- python - Plotting with full dates as the axis
- asp.net-mvc - Asp.Net MVC - 重定向到外部 URL 并从 Action 发布数据
- selenium - Chromebrowser 显示“data:”,而不是 selenium 中传递的参数
- c - 带有两个 .c 文件且没有标题的 Makefile
- c# - 如何在 C# 中从远程获取面板屏幕
- c# - 无法从程序集“Firebase,版本=1.0.0.0,文化=中性,PublicKeyToken=null”加载类型“Firebase.Database.FirebaseObject`1”
- java - 数组中项目的比率总是返回零 ~ HackerRank Plus Minus Problem