VBA:更新数据透视问题

时间:2018-11-06 12:41:34

标签: excel vba excel-vba pivot-table

我对VBA还是比较陌生,在尝试更新数据透视表时,出现以下错误运行时错误1004 , 数据透视表似乎没有正确地获取数据集,因为数据透视表上缺少正确设置数据集格式的日期。

当我运行宏时,它会立即停在DateVal行上,如有需要,请随时询问更多详细信息。

我尝试手动添加属于数据集的日期具有相同结果的日期,但是如果我选择运行“记录宏”的日期将起作用,但是如果我运行由“记录器”创建的宏,则会遇到相同的错误,希望您能告诉我该代码的错误之处。

Sub UpdatePivots()


Application.ScreenUpdating = False
Dim DateVal As String
DateVal = Sheets("home").[G16]
DateFormat = Sheets("home").[Q10]

' Find the last row with data in column A
Sheets("GLViewFinanceCycleCounts").Select
If ActiveSheet.AutoFilterMode = True Then ActiveSheet.AutoFilterMode = False 'Remove Filters if exists
LastRow = ActiveSheet.Range("C1").Offset(ActiveSheet.Rows.Count - 1, 0).End(xlUp).Row

pName = ActiveWorkbook.Path      ' the path of the currently active file
wbName = ActiveWorkbook.Name     ' the file name of the currently active file
shtName = ActiveSheet.Name       ' the name of the currently selected worksheet
DatasetRange = Range("A1:BM" & LastRow).Address(ReferenceStyle:=xlR1C1)
DatasetPT = pName & "\[" & wbName & "]" & shtName & "!" & DatasetRange

' Pivot Updates
' CompletesAndSH page
Sheets("CompletesAndSH").Select ' Pivot Table Page
ActiveSheet.PivotTables("PivotTable41").ChangePivotCache ActiveWorkbook. _
        PivotCaches.Create(SourceType:=xlDatabase, SourceData:=DatasetPT, Version:= _
        xlPivotTableVersion14)
ActiveWorkbook.RefreshAll
' Filter to selected month
ActiveSheet.PivotTables("PivotTable41").PivotFields("A$Period Name").ClearAllFilters
ActiveSheet.PivotTables("PivotTable41").PivotFields("A$Period Name").CurrentPage = DateVal

0 个答案:

没有答案