office-ai整合excel

发布于:2025-07-15 ⋅ 阅读:(16) ⋅ 点赞:(0)

office-ai整合excel

插件安装

office-ai 可以将ai功能整合到office中,提效摸鱼~

如果是 Microsoft Office 直接安装即可使用;如果是 wps,因为WPS默认不支持VB编辑器(Visual Basic for Application),所以需要先手动安装插件

在这里插入图片描述

https://office-ai.cn/static/introductions/officeai/introduction.html

项目实测

实测从零基础到做完经理安排的任务大概花费 2 小时左右,时间主要浪费在使用语句训练模型,使其理解我们的需求,并完成excel整理。

在这里插入图片描述

以下是我实测完成任务的操作:

1、我首先在源文档的基础上做了一个示例,然后扔给ai这段prompt(这几列已经按照格式改好,测试下ai可不可以自己观察到规则,并且复用规则):

在这里插入图片描述

3.您所在的乡镇卫生院与医共体资源共享中心目前的联通情况如何?[多选题]   
A.已实现医学影像实时联通,数据可共享调阅 B.已实现心电诊断实时联通,报告可远程传输 C.已实现检验结果互认共享,避免重复检查 D.已实现远程会诊联通,可与上级医院专家对接

这几列下面的都按照我的示例格式去修改

ai回答:

我将按照您提供的格式修改"乡镇卫生院与医共体资源共享中心联通情况"的多选题选项。以下是修改后的示例格式:
联通情况选项
A.已实现医学影像实时联通,数据可共享调阅
B.已实现心电诊断实时联通,报告可远程传输
C.已实现检验结果互认共享,避免重复检查
D.已实现远程会诊联通,可与上级医院专家对接
需要我为您执行以下操作吗?
       检查当前表格中该多选题的所有选项
       将不符合格式的选项统一修改为标准格式
       确保多选题选项用逗号分隔
请确认是否需要我执行这些修改操作。

2、然后ai把ABCD放到了同一列的不同行,显然他理解错了,所以继续prompt:

你上面的修改不对,ABCD在同一行,但是在不同列

ai回答:

我理解你的需求了。你需要将"联通情况选项"的A、B、C、D四个选项分别放在不同的列中(而不是在同一行的同一列中),并确保数据格式与示例一致。
我将编写VBA代码来调整数据格式:
```
     Sub FormatConnectivityOptions()
     Dim ws As Worksheet
     Dim lastRow As Long
     Dim i As Long
     Dim options As Variant
     Dim optionArray As Variant
     Dim j As Integer

     ' 设置当前工作表
     Set ws = ActiveSheet
     lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

     ' 从第2行开始处理数据
     For i = 2 To lastRow
         ' 检查I列到L列是否有数据
         If ws.Cells(i, "I").Value <> "" Then
             ' 将选项拆分为数组
             options = Split(ws.Cells(i, "I").Value, ",")

             ' 清除原有数据
             For j = 9 To 12  ' I到L列
                 ws.Cells(i, j).Value = ""
             Next j

             ' 将选项放入对应的列
             For j = LBound(options) To UBound(options)
                 If j <= 3 Then  ' 最多处理4个选项(A-D)
                     ws.Cells(i, 9 + j).Value = Trim(options(j))
                 End If
             Next j
         End If

         DoEvents
     Next i

     MsgBox "联通情况选项格式调整完成"
 End Sub
```
这段代码会:
1.        遍历每一行数据
2.        检查I列是否有数据
3.        将I列的数据按逗号分隔成多个选项
4.        将分隔后的选项分别放入I、J、K、L列
5.        清除原有合并的数据
执行此代码后,联通情况选项将会按照你要求的格式分布在不同的列中。
需要我执行这段代码吗?或者你需要对代码做任何修改?

3、ai学习到了大写字母划分规则,分别放入同行不同列的单元格中,然后我们继续提问:

按照规则,这四列的开头都是大写字母,而且允许有空格存在,所以将这些内容重新排序,按照ABCD的顺序插入,如果没有每个字母对应的答案,则不需要填入

ai回答道:

我理解你的需求是要对"联通情况选项"的四个选项(I、J、K、L列)进行重新排序,确保按照A、B、C、D的顺序排列,如果没有某个选项则留空。以下是实现这个需求的VBA代码:
```
Sub ReorderConnectivityOptions()
     Dim ws As Worksheet
     Dim lastRow As Long
     Dim i As Long
     Dim optionsDict As Object
     Dim key As Variant
     Dim cellValue As String
     Dim optionArray() As String
     Dim j As Integer

     Set ws = ActiveSheet
     lastRow = ws.Cells(ws.Rows.Count, "I").End(xlUp).Row

     ' 创建字典存储选项和对应列的关系
     Set optionsDict = CreateObject("Scripting.Dictionary")
     optionsDict.Add "A", "I"
     optionsDict.Add "B", "J"
     optionsDict.Add "C", "K"
     optionsDict.Add "D", "L"

     ' 从第2行开始处理数据
     For i = 2 To lastRow
         ' 先收集所有选项
         Dim foundOptions As Object
         Set foundOptions = CreateObject("Scripting.Dictionary")

         ' 检查I到L列是否有数据
         For j = 9 To 12
             cellValue = ws.Cells(i, j).Value
             If cellValue <> "" Then
                 ' 提取选项字母(A/B/C/D)
                 Dim optionLetter As String
                 optionLetter = Left(cellValue, 1)
                 foundOptions.Add optionLetter, cellValue
             End If
         Next j

         ' 清除原有数据
         ws.Range("I" & i & ":L" & i).ClearContents

         ' 按照A、B、C、D顺序重新填充
         For Each key In optionsDict.Keys
             If foundOptions.Exists(key) Then
                 ws.Cells(i, optionsDict(key)).Value = foundOptions(key)
             End If
         Next key

         DoEvents
     Next i

     MsgBox "联通情况选项已按A、B、C、D顺序重新排序"
 End Sub
```
这段代码会:
1.        遍历每一行数据
2.        收集I、J、K、L列中存在的所有选项
3.        清除原有数据
4.        按照A、B、C、D的顺序重新填充选项
5.        如果某个选项不存在则留空
执行此代码后,联通情况选项将会按照A、B、C、D的顺序排列在I、J、K、L列中。
需要我执行这段代码吗?或者你对代码还有任何修改建议?

至此,某一道题目下面的所有答案已按照正确的规则重新排版。


网站公告

今日签到

点亮在社区的每一天
去签到