Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
运行时错误';1004';无法在Excel 2010中设置工作表类的visible属性,而不是在2013中_Excel_Vba_Pivot Table - Fatal编程技术网

运行时错误';1004';无法在Excel 2010中设置工作表类的visible属性,而不是在2013中

运行时错误';1004';无法在Excel 2010中设置工作表类的visible属性,而不是在2013中,excel,vba,pivot-table,Excel,Vba,Pivot Table,我有一个VBA,它在Office 2013中运行良好,而不是在2010中给出附加错误。有没有关于如何调整它的想法 Sub UpdateDatesPivots_2019() Sheets("2019 dates").Select ActiveSheet.PivotTables("PivotTable4").PivotCache.Refresh ActiveSheet.PivotTables("PivotTable4").RefreshTable Pivot1 = C

我有一个VBA,它在Office 2013中运行良好,而不是在2010中给出附加错误。有没有关于如何调整它的想法

Sub UpdateDatesPivots_2019()
    Sheets("2019 dates").Select
    ActiveSheet.PivotTables("PivotTable4").PivotCache.Refresh
    ActiveSheet.PivotTables("PivotTable4").RefreshTable
    Pivot1 = Cells(3, 13)
    ActiveSheet.PivotTables(Pivot1).PivotCache.MissingItemsLimit = xlMissingItemsNone
    ActiveSheet.PivotTables(Pivot1).PivotCache.Refresh
    ActiveSheet.PivotTables(Pivot1).RefreshTable
    ActiveSheet.PivotTables(Pivot1).PivotFields("run_date").ClearAllFilters
    For i = 5 To 1462
        Date1 = Cells(i, 23)
        Date2 = Cells(3, 14)
        If Date1 <= Date2 And Date1 <> Empty Then
            With ActiveSheet.PivotTables(Pivot1).PivotFields("run_date")
                .PivotItems(Date1).Visible = True
            End With
        End If
        If Date1 > Date2 And Date1 <> Empty Then
            With ActiveSheet.PivotTables(Pivot1).PivotFields("run_date")
                .PivotItems(Date1).Visible = False
            End With
        End If
    Next i
    ActiveSheet.PivotTables(Pivot1).RefreshTable
    ActiveSheet.PivotTables(Pivot1).PivotFields("run_date").CurrentPage = "(All)"
End Sub
但在2013年效果良好吗?我能做些什么调整吗


我查看了其他论坛,并添加了代码,以确保有项目,清除了旧的缓存项目,但在Excel 2010上似乎没有任何东西可以修复它。

我不确定2013年或更高版本,但2010年及以前版本的数据透视项目确实存在问题。最可靠的解决方案是将源数据的格式更改为general,更新pivot表,然后在引用项目时使用日期的数字值。我假设代码中还有更多内容,因为所有这些看起来都有点毫无意义——添加更多的上下文。我在for(Date1)中从上到下查找一个范围内的所有可能日期,并将其与Date2进行比较,Date2指的是一个单元格,其中包含我希望在透视中选择的最大日期。
.PivotItems(Date1).Visible = True