ExcelVBA 刷新PQ生成的超级表同时修改列属性
网友需求:


我们在PowerQuery中上载表后,有时会发生一个问题,日期列上载后变成了数值。这位网友的需求是:让原表发生更改时,自动刷新PowerQuery生成的超级表,并将指定列修改成日期格式。
假设,有如下一张表,在PowerQuery里操作上载到了表1


现在网友需求是修改Sheet1里面的单元格时,自动刷新表1数据,并将日期列改成日期格式
其实刷新这个事,我们之前的ExcelVBA与PowerQuery双剑合璧讲过的,在这里
https://www.bilibili.com/video/BV1aF411a7cC
在VBE编辑器中,双击Sheet1

选Worksheet,再选Change。我们需要对Sheet1这张表写更改事件。代码在红框内

方便大家复制粘贴,红框内代码如下:(红框外的代码是自动生成的,无需手工写)
现在我们对Sheet1单元格进行修改时,他会自动刷新表1,并跳转到表1。
这里会出现一个问题,就是数据量大了以后,可能超级表没有加载完,就要运行对A列的单元格属性设置,造成设置失效。我暂时没有办法判断超级表是否加载完毕。
但是有个笨办法,假设你的表加载需要2分钟,你可以在设置单元格属性前加上一句
Application.Wait (Now + TimeValue("0:03:00"))
括号里的时间是 小时:分钟:秒 让他大于你的刷新时间后再执行下面的代码
如果谁有能判断超级表加载是否完成的判断方法,欢迎大家留言。

ExcelVBA教程:https://www.bilibili.com/video/BV1rt4y1a72y