当前位置:首页|资讯|ChatGPT|编程

我让ChatGPT写了一段代码,结果却尴尬了...

作者:Excel轻松学发布时间:2023-02-10


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--



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1