使用chatgpt写VBA程序操作EXCEL

在chatgpt输入,我有个EXCEL,它有4列,第一列是序号,第二列是机号,第三列是日期,第四列是能耗。同一机号会对应多个日期和多个该日期的能耗。我想让同一个机号的数据下新增加一行,在这一行内算出该机号不同日期下的能耗平均值,填入表格,请帮我写VBA函数执行这个操作。

打开VBA编辑器:在Excel中,按下Alt + F11以打开VBA编辑器。

插入新模块:在VBA编辑器中,右键单击"VBAProject (您的工作簿名)" -> 插入 -> 模块。

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

复制代码
Sub AddAverageEnergyConsumption()
    Dim ws As Worksheet
    Dim lastRow As Long, i As Long, startRow As Long
    Dim vehicleNo As String, totalEnergy As Double, count As Long

    Set ws = ThisWorkbook.Sheets("Sheet1") ' 更改为您的工作表名称
    lastRow = ws.Cells(ws.Rows.count, "C").End(xlUp).Row ' 获取最后一行的行号

    For i = 2 To lastRow + 1
        If ws.Cells(i, 2).Value <> vehicleNo Then ' 检查是否为新的机号
            If vehicleNo <> "" Then ' 如果不是第一个机号,则插入平均值
                ws.Rows(i).Insert ' 在当前行插入新行
                ws.Cells(i, 10).Value = ws.Cells(i - 1, 2).Value
                ws.Cells(i, 11).Value = "上电时长平均单位能耗"
                ws.Cells(i, 12).Value = totalEnergy / count ' 计算并填入平均能耗
                i = i + 1
                lastRow = lastRow + 1 ' 因为插入了新行,所以最后一行的行号需要增加
            End If
            vehicleNo = ws.Cells(i, 2).Value ' 更新当前机号
            totalEnergy = 0 ' 重置总能耗
            count = 0 ' 重置计数器
            startRow = i ' 更新起始行号
        End If
        totalEnergy = totalEnergy + ws.Cells(i, 12).Value ' 累加能耗
        count = count + 1 ' 增加计数器
    Next i

    ' 处理最后一个机号的平均值
    ws.Rows(lastRow + 1).Insert
    ws.Cells(lastRow + 1, 12).Value = totalEnergy / count ' 计算并填入最后一个机号的平均能耗
End Sub

运行宏:在VBA编辑器中,按下F5键或点击工具栏上的"运行"按钮来执行宏。

问题记录1:"运行时错误"91":对象变量或with块变量未设置"

解:工作表名称不匹配:确保代码中的工作表名称与您实际的工作表名称相匹配。如果您的工作表名不是"Sheet1",请将代码中的ThisWorkbook.Sheets("Sheet1")更改为实际的工作表名称。

问题记录2:无法在未启用宏的工作簿中保存vb

解:一般的EXCEL格式是不支持使用宏的,将文件另存为为EXCEL启用宏的工作表(.xlsm),就可以启用宏了。

相关推荐
嘿嘿-668 小时前
Windows 一键使用 GPT-6 Astra:Codex CLI 配置教程
java·人工智能·windows·gpt·chatgpt·web
全栈弄潮儿14 小时前
AI 编程进阶实战:我为什么要做这个专栏
chatgpt·openai·ai编程
嘿嘿-6616 小时前
gpt-6-astra测试,测试你的模型有没有降智
人工智能·gpt·chatgpt·web
大模型码小白17 小时前
ChatGPT 的回答也能被结构化抓取?AI Bot Scraper 对比测评
服务器·开发语言·数据库·人工智能·spring·chatgpt
顿哥GPT19 小时前
ChatGPT Plus / Pro + Codex 深度实战指南(2026年9月5日):从模型能力对比到 Codex 自动化编程工作流全解析
人工智能·chatgpt·自动化
天衍四九-19 小时前
Agent Skills从入门到工程化(十六):面试中如何讲清楚 Agent Skills?
大数据·数据库·人工智能·python·chatgpt·面试
野区小女王1 天前
Codex 接入 DeepSeek-V4-Flash保姆级教程
gpt·chatgpt
嘿嘿-661 天前
GPT-6 Astra 新手快速上手指南
人工智能·gpt·ai·chatgpt·ai编程
dunge20262 天前
ChatGPT Plus / Pro 与 Codex 深度实战指南:2026年9月5日版——从模型能力对比到代码生成工作流全解析
人工智能·chatgpt
昵称画2 天前
POC验证怎么设计用例?不走过程的实操要点
大数据·数据库·人工智能·低代码·excel