ExcelVBA SQL+ADO同样可以操作当前工作簿的工作表
网友提问:

图片放大

回答网友问题:
我跟大家说过,字典在绝大多数情况下可以被代替。这个问题同样不需要字典
但是,大家注意几个细节。
(1)你原始表,不能是打开一个工作簿,写上一点数据,不保存就操作。您需要把当前工作簿先保存到硬盘上再打开。
(2)每一次操作时,他默认是指定表所有有数据的区域。如果你第2次再运行,E1:G6 被你写了数据,会影响你的结果。但是可以解决。稍后讲
先准备数据,从硬盘上打开这个工作簿

写VBA代码(先把代码放出来,思路在后面)
运行结果

如果想指定A1至C9这个区域,只需要将SQL语句中的 [孙兴华$] 改成 [孙兴华$A1:A9]
如果行不能确定,我们可以找A1单元格的连续区域最大行,方法在ExcelVBA中讲了很多
最后拼接字符串就可以了。
下面讲一下SQL语句思路(方法不唯一)
我们原始表

我们对所有列去重

对时间和班别分组并计数

现在我们得到了上面两个SQL语句,第2个语句中的去重就是第1个SQL语句
