回答
我录制了一个Excel宏(并将其保存在我的个人宏工作簿中)以创建数据透视表,并希望我能够在多个工作表上使用它。当我在计算机上的电子表格上运行代码时,代码工作正常,但不会在其他计算机上运行或者如果我尝试在VBA编辑器中运行它。它不断给出以下错误: http://imgur.com/xNU1R2F(找不到数据透视表源文件)
问题是,文件以相同的名称保存在该位置。我尝试用电子表格的范围替换路径(如果我想在其他电子表格上使用它,这不是理想的),但这会产生应用程序定义的或对象定义的错误。我也尝试将它放在不同的地方无济于事。
我使用的代码如下:
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"File_Name!R1C1:R1681C105", Version:=xlPivotTableVersion14). _
CreatePivotTable TableDestination:="Sheet1!R3C1", TableName:="PivotTable1" _
, DefaultVersion:=xlPivotTableVersion14
我认为问题出在" File_Name!R1C1:R1681C105" (如果我更改文件位置,路径确实会改变,但产生相同的错误)
如何让我的代码找到源文件?
答案:munircontractor的方法有效。必须在我的代码之前添加以下代码,然后才能找到源文件。
Set SrcWbk = Workbooks.Open("File_Name", , ReadOnly)
虽然它在我的计算机上工作正常,但我发现为了让我的代码在其他计算机上运行,工作表无法在Excel中打开,它只会在空白工作表上运行宏。可能只是一个侥幸,但想提及它以防其他人遇到同样的问题。