Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA正在将数据透视表的源数据更新到行的末尾_Vba_Excel_Excel 2007 - Fatal编程技术网

VBA正在将数据透视表的源数据更新到行的末尾

VBA正在将数据透视表的源数据更新到行的末尾,vba,excel,excel-2007,Vba,Excel,Excel 2007,我试图弄清楚,当数据使用VBA更改时,如何将数据透视表源数据更新到行的末尾。我目前的代码如下: Dim shBrandPivot As Worksheet Dim shCurrentWeek As Worksheet Dim shPriorWeek As Worksheet Dim shPivot As Worksheet Dim lr As Long Set shBrandPivot = ActiveWorkbook.Sheets("Brand Pivot") Set shCurrentW

我试图弄清楚,当数据使用VBA更改时,如何将数据透视表源数据更新到行的末尾。我目前的代码如下:

Dim shBrandPivot As Worksheet
Dim shCurrentWeek As Worksheet
Dim shPriorWeek As Worksheet
Dim shPivot As Worksheet
Dim lr As Long


Set shBrandPivot = ActiveWorkbook.Sheets("Brand Pivot")
Set shCurrentWeek = ActiveWorkbook.Sheets("Current Week")
Set shPriorWeek = ActiveWorkbook.Sheets("Prior Week")
Set shPivot = ActiveWorkbook.Sheets("Pivot")
lr = shCurrentWeek.Range("A" & Rows.Count).End(xlUp).Row

With ActiveWorkbook.Sheets("Pivot").Activate

ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:="CurrentWeek!A3:X & lr"

End With

我收到的错误是运行时错误1004:无法打开数据透视表源文件:E:\offline\KXM2103\Data\CurrentWeek

若要以VBA独占方式执行此操作,可以尝试此操作

Dim shBrandPivot As Worksheet
Dim shCurrentWeek As Worksheet
Dim shPriorWeek As Worksheet
Dim shPivot As Worksheet
Dim lr As Long
dim rng as range

Set shBrandPivot = ActiveWorkbook.Sheets("Brand Pivot")
Set shCurrentWeek = ActiveWorkbook.Sheets("Current Week")
Set shPriorWeek = ActiveWorkbook.Sheets("Prior Week")
Set shPivot = ActiveWorkbook.Sheets("Pivot")
lr = shCurrentWeek.Range("A" & Rows.Count).End(xlUp).Row
set rng = shcurrentweek.range("A3:X" & lr)

With shPivot.PivotTables(1).PivotCache 
        .SourceData = rng.Address(True, True, xlR1C1, True)
        .Refresh
End With

是否可以使用动态定义的范围,然后在代码中简单地刷新透视表?您的数据是如何更新的?@scott目前,我的数据正在通过“选项->更改源数据”手动更新。我正在考虑尝试您讨论过的方法,但我想看看是否有专门通过VBA实现的方法。我在xlPivotTableVersion14(变量未定义)上遇到一个编译错误,编辑它只是为了删除版本并坚持默认行?你的工作表上有数据透视表吗?是的,我有数据透视表。我在工作表(“pivot”)上收到它。数据透视表(1)。ChangePivotCache活动工作簿。\u创建(SourceType:=xlDatabase,SourceData:=rng)让我们