ChatGPT最近可是火爆全网,大家都在探索ChatGPT,想看看它究竟能干些什么。我尝试给ChatGPT提了个问题,要求写一段VBA代码,根据Excel表的A、B列来判断是否是重复行,并删除重复行。ChatGPT很快就给出了答案,但是结果却尴尬了...
我把ChatGPT给出的代码放到Excel表中验证,看看哪里有问题。
示例数据
准备以下示例数据。
测试代码
在Excel中按Alt+F11,打开代码编辑器,复制ChatGPT给出的代码并粘贴到新建的代码模块中。
我们运行一下代码,查看效果,结果发现,部分重复行没有被删除!
哪里出了问题
其实这是因为ChatGPT给出的代码中有点bug。在使用VBA代码循环删除行时,需要从最后一行倒着往上删除,否则的话循环过程中可能会漏掉某些行。
按照给出的示例数据,当查找到第3行时,找到重复行,然后执行删除,本次循环结束,变量i就变成了4,也就是下次是判断第4行是否是重复行。问题就在于,代码删除了1行,原来的第4行实际上就变成了第3行。这时代码再去检查第4行,事实上就跳过了原来的第4行(现在已变成第3行)。
其实我们稍加修改,代码还是可以用的。就是将以下代码
For i = 2 To LastRow
更改为
For i = LastRow To 2 Step -1
这句代码的意思是是从大到小进行循环,“Step -1”就表示每循环一次变量的值就减1,从而也就是实现了从最下面的行倒着往上去依次判断是否有重复行。
修改后的代码
修改后的完整代码如下。
总的来说,瑕不掩瑜,我们可以看到代码比较工整,变量命名也有代表意义,而且还具备注释,是一份比较完整的代码。所以只要我们具备了一定的编程知识,使用AI辅助,确实能节省很多时间。关注微信公众号“Excel轻松学”,期待将来有更多的发现!
--End--