大数跨境
0
0

简单的数据处理,DeepSeek可以快速帮助我们设计VBA代码(复杂的情况,暂时先不说了)

简单的数据处理,DeepSeek可以快速帮助我们设计VBA代码(复杂的情况,暂时先不说了) Excel数据分析之道
2025-04-22
2
对于简单的数据处理,DeepSeek可以快速帮助我们设计VBA代码,正如前面文章(通过简单例子看DeepSeek设计VBA代码)介绍的那样。
此外,对于从标准数据表单中进行条件数据查询(相当于筛选),也是可以使用DeepSeek快速设计代码的。
例如,下面是工作簿中的“订单信息”工作表,要查询上半年订单金额在500万以上的订单记录,并将结果保存新工作表,就可以让DeepSeek帮助我们设计代码,省去我们费心费力去码字了

选择“深度思考”模型,上传文件,输入下面的提示词

数据源:

Excel工作簿“简单表格的数据基本查询.xlsm”里的工作表“订单信息”全部字段数据

要求:

利用Excel VBA+SQL查询数据,设计VBA+SQL自动化数据查询代码

代码要简洁高效,尽量使用后绑定引用ADO

查询条件:

1、 订单日期是2024年上半年

2、 订单金额大于500万元

3、 按订单金额降序排序

4、 查询结果保存到新工作表

点击发送按钮,DeepSeek就开始深度思考,然后很快就设计好的VBA代码。思考过程花了36秒,输出代码花了20秒,前后不到1分钟就得到了数据查询代码。
经测试,代码运行正确。运行程序,查询结果如下图。
为方便大家验证和学习,下面列示出DeepSeek设计的VBA+SQL数据查询代码。

Sub QueryLargeOrders()

 Dim conn As Object

 Dim rs As Object

 Dim strConn As String

 Dim strSQL As String

 Dim wsOutput As Worksheet

 Dim startDate As String

 Dim endDate As String

 

 设置日期范围(2024年上半年)

 startDate = "#2024-01-01#"

 endDate = "#2024-06-30#"

 

 创建输出工作表

 On Error Resume Next

 Set wsOutput = ThisWorkbook.Sheets("查询结果")

 If Err.Number <> 0 Then

 Set wsOutput =

 ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))

 wsOutput.Name = "查询结果"

 End If

 On Error GoTo 0

 wsOutput.Cells.Clear

 

 创建ADO对象(后绑定)

 Set conn = CreateObject("ADODB.Connection")

 Set rs = CreateObject("ADODB.Recordset")

 

 构建连接字符串(适配Excel版本)

 strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" & _

 "Data Source=" & ThisWorkbook.FullName & ";" & _

 "Extended Properties=""Excel 12.0 Macro;HDR=YES"";"

 

 构建SQL查询

 strSQL = "SELECT * FROM [订单信息$] " & _

 "WHERE 订单日期 >= " & startDate & " " & _

 "AND 订单日期 <= " & endDate & " " & _

 "AND 订单金额 > 5000000 " & _

 "ORDER BY 订单金额 DESC"

 

 执行查询

 conn.Open strConn

 rs.Open strSQL, conn

 

 输出结果到工作表

 If Not rs.EOF Then

 输出标题

 For i = 0 To rs.Fields.Count - 1

 wsOutput.Cells(1, i + 1) = rs.Fields(i).Name

 Next i

 

 输出数据

wsOutput.Range("A2").CopyFromRecordset rs

 Else

 MsgBox "没有符合条件的记录。"

 End If

 

 清理对象

 rs.Close

 conn.Close

 Set rs = Nothing

 Set conn = Nothing

 

 自动调整列宽

 wsOutput.Columns.AutoFit

 MsgBox "查询完成!结果已输出到【查询结果】工作表。"

End Sub


注:这个案例有额可以让DeepSeek设计利用自动筛选工具进行数据筛选的VBA代码,不过得到的代码可以会存在问题。
例如,继续输入下面的提示词:
如果这个数据查询使用Excel自动筛选工具,请设计相应的VBA代码
DeepSeek设计的代码却是错误的,如下图。
如果再让DeepSeek去纠错,再运行测试,再纠错,。。。。,可能要花不少的时间,得不偿失。
为什么DeepSeek对于这么简单的筛选数据,就设计出了错误的VBA代码了呢?难道是它把简单问题复杂化了?
通过这两种方法查询数据代码的比较,你有什么感悟和总结?

【声明】内容源于网络
0
0
Excel数据分析之道
全面介绍Excel在企业数据分析中的各种应用,实际案例模板分享,经验心得,帮助个人和企业提升Excel应用能力。
内容 1106
粉丝 0
Excel数据分析之道 全面介绍Excel在企业数据分析中的各种应用,实际案例模板分享,经验心得,帮助个人和企业提升Excel应用能力。
总阅读3
粉丝0
内容1.1k