表格宏编辑器里的这个AI它在秀什么啊?

麦宇哲
麦宇哲

WPS产品体验官

前因

在论坛里看到有人提问:

如题“怎么在wps 的表格里面加入动态的时钟 自动跳秒数的”
原贴

于是我问了下Copilot,它回答如下:

💡

要在表格中加入动态的时钟并让秒数自动更新,您可以使用Excel的VBA编程来实现这个功能。以下是一个简单的步骤,您可以尝试:

  1. 打开Excel,然后按 Alt + F11 打开VBA编辑器。

  1. 在VBA编辑器中,选择“插入” -> “模块”来添加一个新的模块。

  1. 在新模块中,复制并粘贴以下VBA代码:

```js

Public Sub UpdateTime()

Sheet1.Range("A1").Value = Now

Application.OnTime Now + TimeValue("00:00:01"), "UpdateTime"

End Sub

```

  1. 确保您的工作表名是Sheet1,并且您想要显示时间的单元格是A1。如果不是,请相应地修改代码中的工作表名和单元格引用。

  1. 运行这个宏,它会在指定的单元格中显示当前时间,并且每秒更新一次。

请注意,为了让VBA代码正常运行,您需要确保宏功能在Excel中是启用的。此外,当您关闭Excel时,动态时钟将停止更新,下次打开时需要重新运行宏。

重要提示:在使用VBA时,请确保您理解代码的功能,因为宏可以执行强大的操作,包括修改文件和设置。如果您不熟悉VBA,请在执行前进行充分的测试。如果您需要更详细的步骤或遇到问题,我可以提供进一步的帮助。

WPS表格里实操

点击"运行"按钮后,弹出宏窗口,里面没有任何可执行的内容:

问下WPS AI

然后AI直接给我秀了段代码:

💡

代码1:

function Macro(){

let targetWorksheet = ActiveSheet

let targetWorkbook = ActiveWorkbook

let currentRange = ActiveSheet.UsedRange.CurrentRegion

let targetRange = Range("A1:Y7688")

let operator = xlAnd

let criteria1 = =101

if (targetWorksheet.AutoFilter) {

let oldRange = targetWorksheet.AutoFilter.Range

if (targetRange.Row!= oldRange.Row || targetRange.Column!= oldRange.Column || targetRange.Rows.Count!= oldRange.Rows.Count || targetRange.Columns.Count!= oldRange.Columns.Count) {

targetWorksheet.AutoFilter.Range.AutoFilter()

}

}

targetRange.AutoFilter(14, criteria1, operator, undefined)

}

🔔

代码2:

function Macro(){

let targetWorksheet = ActiveSheet

let targetWorkbook = ActiveWorkbook

let currentRange = ActiveSheet.UsedRange.CurrentRegion

let targetRange = Range("A1:Y6147")

let operator = xlAnd

let criteria1 = =1

if (targetWorksheet.AutoFilter) {

let oldRange = targetWorksheet.AutoFilter.Range

if (targetRange.Row!= oldRange.Row || targetRange.Column!= oldRange.Column || targetRange.Rows.Count!= oldRange.Rows.Count || targetRange.Columns.Count!= oldRange.Columns.Count) {

targetWorksheet.AutoFilter.Range.AutoFilter()

}

}

targetRange.AutoFilter(15, criteria1, operator, undefined)

}

代码1与代码2比较

执行下试试

把代码1插进去,结果您猜怎么着儿?它执行失败了!

提示的第一行,那好,我把原来copilot里粘进来的代码删除了试试:

再执行下代码2试试,

提示的第一行,那好,我把原来copilot里粘进来的代码删除了试试:

这段代码在做什么?

好奇这段代码究竟在做什么,于是粘到了copilot中去看了看:

📌

Sub AutoFilterMacro()

Dim targetRange As Range

Set targetRange = ActiveSheet.Range("A1:Y6147")

' 检查是否已经存在自动筛选,如果是,则先移除

If ActiveSheet.AutoFilterMode Then

ActiveSheet.AutoFilterMode = False

End If

' 应用自动筛选条件

targetRange.AutoFilter Field:=15, Criteria1:="=1"

End Sub

结论

WPS宏编辑器中的AI似乎在以"与众不同","不同寻常"的方式工作着,而且给出的答案似乎也毫不相干呀~~~

北京
浏览 3008
收藏
9
分享
9 +1
8
+1
全部评论 8
 
麦宇哲
麦宇哲

WPS产品体验官

哈哈,反正我是不懂VBA或者JS,没研究过
· 北京
回复
 
Die Upon a Kiss
好复杂
· 湖北省
回复
麦宇哲
麦宇哲

WPS产品体验官

哈哈,我不懂这个东东。没有研究过它的语法或者编程
· 北京
回复
 
亮闪闪的小脑袋
亮闪闪的小脑袋

WPS产品体验官

Sub UpdateTime() ActiveSheet.Range("A1").Value = Now() Application.OnTime Now + TimeValue("00:00:01"), "UpdateTime" End Sub
· 四川省
回复
 
wils
wils

创作者俱乐部成员

copilot也在瞎掰。。。 这段代码是js而不是vba 那几个方法也不是vba独有,js宏也有 ai实际上是在找同义词,根本不是在理解,所以只有流行的语言能得到比较准确的结果,vba和js宏50步笑百步,都是在瞎掰。。。
· 海南省
回复
wils
wils

创作者俱乐部成员

不过vba确实比js的文档多得多好得多,没有相关的文章,问js宏相关的问题更大概率得到瞎掰的结果
· 海南省
回复