【ChatGPT的小妙招】结合Excel的vbs开发者工具达成对Excel文件的处理

文章介绍了如何通过ChatGPT和Excel的VBS开发者工具来处理Excel文件,尤其是翻译整合工作簿。用户先用Google翻译进行初步翻译,然后在ChatGPT中描述需求,让它生成VBS代码,将代码导入Excel的VisualBasic中执行,实现对Excel文件的自动化处理。这种方法适用于无法直接上传文件给ChatGPT的情况。
摘要由CSDN通过智能技术生成

使用ChatGPT处理Excel文件的原理

众所周知,ChatGPT不管是3.0还是3.5还是4.0都只支持语言对话,并不支持文件的上传,所以,所谓的让ChatGPT直接处理Excel表格是做不到的,但是有人也说了,明明有些Excel表格的处理可以通过简单的一句话来告知ChatGPT如何运作,但是开发者就是没有打开这项功能,也许是出于安全考虑吧。那么今天,我们就转变一个思路,通过Excel本身存在的开发工具来解决这一难题。开发工具原本是用来通过编写vbs代码来进行批处理Excel文件。那么我们今天的思路就是通过告知ChatGPT我们处理Excel文件的步骤,让他来帮我们写vbs代码,之后再把代码代入Excel的开发工具中的Visual Basic中使用,即可达成使用ChatGPT来处理Excel文件的目的。

例子(翻译整合)

某公司收到一份英文Excel工作簿文件,其中有十几个工作表,现在需要整合成一份中英文对照模式的Excel工作簿。

操作方法

1. 对整份Excel工作簿进行翻译

用过翻译软件的应该都有发现,目前主流的翻译软件,例如有道Google翻译
今天我们以Google翻译为例

如上图中所示

    1. 上传 英文原文件
    1. 翻译,导出 得到 中文翻译文件
    1. 检查 中文翻译文件 内部是否有出入

2. 进入ChatGPT对话框,描述需求

    1. 首先打开ChatGPT对话框描写需求(因为ChatGPT产品层出不穷,这里不提供网站)
      在这里插入图片描述

输入并发送: “我用谷歌翻译了一个excel表格,请帮我编写一段vbs代码,我想把翻译件和我的原文件进行整合,做成原文在上译文在下的形式”

    1. 这时候ChatGPT就会根据诉求编写一段 vbs代码:
Sub MergeTranslations()
    Dim original As Workbook
    Dim translated As Workbook
    Dim originalSheet As Worksheet
    Dim translatedSheet As Worksheet
    Dim originalRange As Range
    Dim translatedRange As Range
    Dim row As Long
    Dim col As Long
    Dim originalText As String
    Dim translatedText As String
    
    ' 打开原文件和译文文件
    Set original = Workbooks.Open("path_to_original_file")
    Set translated = Workbooks.Open("path_to_translated_file")
    
    For Each originalSheet In original.Worksheets
        ' 获取对应的译文工作表
        Set translatedSheet = translated.Worksheets(originalSheet.Name)
        
        ' 遍历工作表中的所有单元格,合并原文和译文
        For row = 1 To originalSheet.UsedRange.Rows.Count
            For col = 1 To originalSheet.UsedRange.Columns.Count
                Set originalRange = originalSheet.Cells(row, col)
                Set translatedRange = translatedSheet.Cells(row, col)
                
                ' 获取原文和译文文本
                originalText = originalRange.Text
                translatedText = translatedRange.Text
                
                ' 合并原文和译文
                originalRange.Value = originalText & Chr(10) & translatedText
                
                ' 调整单元格格式
                originalRange.Rows.AutoFit
                originalRange.VerticalAlignment = xlTop
                
                ' 清空译文单元格
                translatedRange.Value = ""
            Next col
        Next row
    Next originalSheet
    
    ' 保存并关闭文件
    original.Save
    original.Close
    translated.Close
End Sub
    1. 为了防止在对两个工作簿工作表的匹配遍历出错,我再加入了一部分判断语句,如果在 英文源文件 中找不到与 中文翻译件 中匹配的工作表,则跳过该工作表。更改后的代码如下:
Sub MergeTranslations()
   Dim original As Workbook
   Dim translated As Workbook
   Dim originalSheet As Worksheet
   Dim translatedSheet As Worksheet
   Dim originalRange As Range
   Dim translatedRange As Range
   Dim row As Long
   Dim col As Long
   Dim originalText As String
   Dim translatedText As String
   
   ' 打开原文件和译文文件
   Set original = Workbooks.Open("path_to_original_file")
   Set translated = Workbooks.Open("path_to_translated_file")
   
   For Each originalSheet In original.Worksheets
       ' 检查对应的译文工作表是否存在
       On Error Resume Next
       Set translatedSheet = translated.Worksheets(originalSheet.Name)
       On Error GoTo 0
       
       ' 如果译文工作表不存在,则跳过该工作表
       If translatedSheet Is Nothing Then
           MsgBox "Translation sheet for " & originalSheet.Name & " was not found.", vbExclamation, "Error"
       Else
           ' 遍历工作表中的所有单元格,合并原文和译文
           For row = 1 To originalSheet.UsedRange.Rows.Count
               For col = 1 To originalSheet.UsedRange.Columns.Count
                   Set originalRange = originalSheet.Cells(row, col)
                   Set translatedRange = translatedSheet.Cells(row, col)
                   
                   ' 获取原文和译文文本
                   originalText = originalRange.Text
                   translatedText = translatedRange.Text
                   
                   ' 合并原文和译文
                   originalRange.Value = originalText & Chr(10) & translatedText
                   
                   ' 调整单元格格式
                   originalRange.Rows.AutoFit
                   originalRange.VerticalAlignment = xlTop
                   
                   ' 清空译文单元格
                   translatedRange.Value = ""
               Next col
           Next row
       End If
   Next originalSheet
   
   ' 保存并关闭文件
   original.Save
   original.Close
   translated.Close
End Sub

注意,上述"path_to_original_file"及"path_to_translated_file"均为相对路径,为了减少错误的发生,请直接放在同一个文件夹内,并更名为类似 1.xlsx和2.xlsx等 利于输入,不会出错 的名字。

3. 打开两个Excel表格

防止某些表格打开时有保护,缺失等问题,提前手动打开能很大程度上防止后续vbs代码运行的出错。

4. 打开Excel的开发工具

复制上述代码,随意选取一个Excel文件,找到命令栏中的开发工具

开发工具

如果上述命令栏中没有开发工具,以此从文件选项自定义功能区主选项卡 → 勾选 开发工具

如何打开开发工具

5. 打开Visual Basic

开发工具 中打开 Visual Basic

打开Visual Basic

6. 使用Visual Basic

打开Visual Basic后界面如下,在空白处单击鼠标右键,依次选择插入模块

在这里插入图片描述

此时会生成一个新的代码编辑框,将之前的代码经过更改两个文件名后全部复制后黏贴到新的对话框里,点击如下图所示的运行按钮

运行

程序就将自动运行,运行完成后,新的整合文件将体现在 英文源文件 上。

6. 结束

    1. 检查整合后文件是否 翻译 有错误调整例如 行间距 等简单问题
    1. 选择并保存未自动关闭的文件

至此,利用ChatGPT对Excel文件进行处理的全过程结束。

总结

ChatGPT的功能远远不止对话这么简单,有时候不能直接上传文件进行处理的时候,可以通过某些间接的方式进行处理从而达到目的,Excel可以这样,那说明PPT,CAD等其他同样可以使用各种语言代码编译处理任务的软件同样也能用类似方法达到目的,这里只是提供一种具体的使用思路,大家可以集思广益,大胆尝试。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值