如何让不使用vba没办法打开excel表_Excel中一个被严重忽视的大杀器功能

c49dcb4e56789fee6f8f2897c98d6c39.png

一说到Excel工作簿内容合并、多工作簿查询、外部数据源的查询引用的实现,那么很多人第一想法就是使用公式、VBA、Power query。没错,这几个确实可以。我本人是一个Power query重度依赖者,经常使用PP来做数据查询。可后来慢慢的发现,Power query问题真的很多,比如说占用内存太大、运行非常缓慢。另外,一些低版本的Excel不支持PP,同时WPS也是不支持PP的。这个让我非常头疼,于是不得不找其它办法。于是在不经意间发觉了以下这个一直被忽视的东西:Microsoft Query。于是,我就使用这玩意试着分别连接SQL Server做了一个动态财务的科目汇总表查询,和连接Access做了一个动态查询。效果如下:

482e6ae7121b416bc25e01b6317bc05a.png
科目汇总查询表

faa583bd99c137e52cfc0e35b48123f5.png
工程款支付查询表

以上,两个测试完全实现了使用参数的动态查询。以往,实现这种效果,要么使用VBA、要么使用power query。以下,我们来看一下怎么实现它呢。

1、打开菜单栏,找到Microsoft Query的

d10bbbcfcb48c81b6e325406bc44da6c.png

2、进入数据源配置界面

0b1500a77d73a75e42db11a555f00d7c.png

这里已经存在了常用的Excel、Access这两种数据源连接方式。但其他的,我们需要单独建立。在此以SQL Serve为例。

32419099c8ad015937ebc685043d6fed.png

56254529c50c4d956707b4224934a682.png

刚才建立的数据源就出现在了列表里面

9565075449eeb03f5351b7e677e15bad.png

接下来我们来看如何实施查询

首先,选择一下数据库,然后添加一下需要用到的表

758341bb7b0ce35f8fd0346bc317fcce.png

e856894f72fed9b11fc7cabffdc13e68.png

以上这个界面,作为使用过Foxpro的人应该不陌生,果然是上古的杰作。我们看到,从数据添加的表,自带了表间关系。这个非常省心,如果是Excel查询,那么就得自己建立表间关系了。

接下来,我们把需要用到的的字段全部添加到列表里面,因为有表间关系,会自动做数据参照。查询器里面的好多细节操作,在此就不过多描述了。

现在我们来看一下,查询器自己生成的 SQL语句

c1212da84b8cf3c5ca6a810a61b1c84c.png

在使用过程中,因为需要做动态查询,因此加入了查询参数,然后这部分参数又被绑定到了工作表的单元格上。只要在这部分单元格就可以作为查询条件来使用,只要这部分单元格数值有变动,那么查询就会同步更新,根本不需要刷新或者添加按钮来执行查询。具体如下:

1f3e3ca47a60fdd437567bbcca8871b3.png

现在,让我们来看看,做出同样效果的东西,VBA和Power Query的工作量:

首先,来看VBA的工作量:

1、单独设计的查询界面

bf1dc829e72fbac1510bbd2a53b03404.png

2、部分VBA代码

fead60a4959cf502bea5aa664fcbd671.png

至于power query稍微好一些,在引入数据的时候一句SQL语句就能解决,但是这货对于使用参数做动态查询实在太麻烦,需要合并好几几次查询才行。

最后,对比Microsoft Query、VBA、Power query。可以说Power Query应该是Microsoft Query 的升级版,但是PQ使用的是M语言,在使用便利性和性能上不占优势,随便一个查询动辄就是几个G的内存占用,分分钟就死机。使用过多以后,感觉目前的PQ,还真只是一个玩具,它还有很大的改进空间。而VBA,这个看似无所不能,但正是无所不能才更加不那么好控制。至于Microsoft Query而言,并非没有缺点,最大的缺点我认为是多表连接查询时候没法使用左连接、右连接以及外部连接,只能使用内部或者说等值连接。所以,对于日常的合并工作表,还是建议使用MQ。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值