Excel 透视表筛选器如何销毁动态命名范围?

Excel 透视表筛选器如何销毁动态命名范围?,excel,vba,pivot-table,Excel,Vba,Pivot Table,问题已解决,答案如下 我有一个代码在过去几个月里一直运行良好。 从昨天到今天的晚上,当没有人使用计算机时(只有一个自动运行的VBA代码),它停止了工作 简而言之,自动VBA代码更新工作表1上的表格,工作表2上的数据透视表使用时间的前四个字符和当时的值。 示例(时间为10:15)time=10:1,value=5555。最后一分钟的原因是为了得到一个“四舍五入的数字”,当这个数字扩展到数月的数据时,最好是10:1,而不是10:15、10:16和10:17等等 数据在表2上之后,使用一个命名范围来获

问题已解决,答案如下

我有一个代码在过去几个月里一直运行良好。
从昨天到今天的晚上,当没有人使用计算机时(只有一个自动运行的VBA代码),它停止了工作

简而言之,自动VBA代码更新工作表1上的表格,工作表2上的数据透视表使用时间的前四个字符和当时的值。
示例(时间为10:15)
time=10:1,value=5555
。最后一分钟的原因是为了得到一个“四舍五入的数字”,当这个数字扩展到数月的数据时,最好是10:1,而不是10:15、10:16和10:17等等

数据在表2上之后,使用一个命名范围来获取表中感兴趣的部分(第一个值上方的两行>0到表的末尾),通常意味着第35~40行和第148行结束

 =OFFSET(Blad2!$B$5,MATCH(TRUE,Blad2!$B$5:$B$148<>0,0)-3,0,MATCH(TRUE,Blad2!$B$5:$B$148="",0)-MATCH(TRUE,Blad2!$B$5:$B$148<>0,0)+2,1)
透视表如下所示:

我正在做的是将表的过滤器从如图所示的星期四更改为星期五。
要做到这一点,我需要先重置过滤器,然后循环并取消设置(星期五除外)。
但一旦过滤器复位,动态范围就会停止工作。

这是什么原因造成的

当我输入这个问题时,我发现了问题。
我实际上是在打最后一行,但一开始我就知道了

我相信这对其他人来说也是个问题,所以我保留了这个问题

问题是数据透视表向下增长。
我以为我的表中有所有的“四舍五入时间”,但似乎缺少了一个,这导致它超出了动态范围试图找到表尾的位置。
只需在范围(148=>150)中添加两行,就可以再次正常工作

=OFFSET(Blad2!$B$5,MATCH(TRUE,Blad2!$B$5:$B$150<>0,0)-3,0,MATCH(TRUE,Blad2!$B$5:$B$150="",0)-MATCH(TRUE,Blad2!$B$5:$B$150<>0,0)+2,1)
=OFFSET(Blad2!$B$5,匹配(TRUE,Blad2!$B$5:$B$1500,0)-3,0,匹配(TRUE,Blad2!$B$5:$B$150=”“,0)-MATCH(TRUE,Blad2!$B$5:$B$1500,0)+2,1)
我现在已经仔细检查了所有的“四舍五入时间”都在表中,这样它就不会再增长了

是的,我应该买一只橡皮鸭

=OFFSET(Blad2!$B$5,MATCH(TRUE,Blad2!$B$5:$B$150<>0,0)-3,0,MATCH(TRUE,Blad2!$B$5:$B$150="",0)-MATCH(TRUE,Blad2!$B$5:$B$150<>0,0)+2,1)