怎么用VBA删除Power Query生成的查询?

2021-08-31 10:20:58 浏览数 (1)

有时候,我们希望只将Power Query相关的查询结果给用户,又或者需要将查询的结果固化下来(不随新数据的加入而刷新),而被其他查询引用(比如有些工作中需要做不同阶段的数据检查、校验等),就需要对Power Query生成的查询或查询连接进行删除。

当然,很多情况下手工删除一下也不复杂,但是,如果这也是一个重复性的工作,或者还要跟其他的过程也结合起来,那么,通过VBA进一步实现全过程的自动化,也是个非常不错的主意:既可以利用Power Query对数据处理过程实现自动化的简单易用性,又能利用VBA对Power Query的执行过程实现自动化!


用VBA删除Power Query生成的查询,有以下2种情况。

一、删除连接,但不删除查询

即仅删除查询和结果数据表间的连接,使数据表不能刷新。比如有如下查询“表1”:

其连接情况如下(特别要注意的是,查询名称为“表1”,查询连接的名称为“查询 - 表1”):

那么,要删除查询连接,VBA语句如下:

运行代码后,我们会发现,连接没了,查询还在,如下图所示:

二、删除查询

如果要删除查询,VBA语句如下:

但是,要注意的是,单独执行删除查询,查询没了,连接还在(如果此前没有删除查询连接的话),如下图所示:

因此,如果需要将查询和查询连接都删除,那么需要将两个语句做个简单的组合,不在赘述。

同时,从这里也可以看出,在Excel里,Power Query生成查询时,查询和查询连接是两个不同的对象,可以按需要分开处理。

0 人点赞