使用VBA + TRANSLATE()翻译Excel工作表

使用VBA和内置的=TRANSLATE()函数自动翻译整个Excel工作表。

如果您需要翻译整个工作表(发票、产品列表、装箱单等)而不破坏布局,这种方法非常有效:

  • 保持原始工作表不变
  • 创建具有相同格式的新「已翻译」工作表
  • 使用Excel内置的=TRANSLATE()函数自动翻译每个文本单元格

=TRANSLATE()是由Microsoft Translator提供支持的基于云的Excel函数。它需要互联网连接才能工作。它可在Microsoft 365版Excel(包括Mac)、Excel网页版和移动版中使用,但在某些版本/渠道中可能尚不可用。

开始之前:确认您的Excel中存在=TRANSLATE()

在任意单元格中尝试:

=TRANSLATE("hello","en","zh-CN")

如果您看到#NAME?,说明您的Excel版本还没有此函数。Microsoft表示它在Microsoft 365/网页版/移动版上受支持,并且是基于服务的。

它也已通过Microsoft 365 Insider渠道作为新功能引入,因此可用性可能取决于更新渠道/推出进度。

您将构建什么

一个VBA宏,可以:

  • 创建活动工作表的副本
  • 使用=TRANSLATE()函数翻译所有文本单元格
  • 保留数字、公式和格式
  • 用目标语言代码命名新工作表

前提条件

  • Microsoft 365订阅(=TRANSLATE()函数需要Microsoft 365)
  • Windows或Mac版Excel(网页版VBA支持有限)
  • 在Excel设置中启用宏
1

将文件另存为启用宏的工作簿

  1. 1打开您的Excel文件
  2. 2转到文件 → 另存为
  3. 3从文件类型下拉列表中选择Excel启用宏的工作簿 (*.xlsm)
  4. 4点击保存

重要:普通的.xlsx文件不能包含宏。您必须另存为.xlsm才能使用VBA代码。

2

打开VBA编辑器

Keyboard Shortcut

Alt + F11(Windows)或Option + F11(Mac)

替代方法

  1. 1.转到开发工具选项卡
  2. 2.点击Visual Basic

提示:如果看不到开发工具选项卡,请转到文件 → 选项 → 自定义功能区并勾选开发工具。

3

下载并导入VBA代码

从GitHub获取VBA宏

从我们的开源仓库下载TranslateSheet.bas文件。

如何导入.bas文件

  1. 1下载TranslateSheet.bas文件
  2. 2在VBA编辑器中,转到文件 → 导入文件...
  3. 3选择下载的TranslateSheet.bas文件
  4. 4模块将出现在项目的Modules文件夹中

替代方法:您也可以直接从GitHub复制代码并粘贴到新模块中(插入 → 模块)。

4

运行宏

  1. 1确保要翻译的工作表处于活动状态
  2. 2Alt + F8打开宏对话框,选择TranslateActiveSheetToNewSheet,然后点击运行
  3. 3输入源语言代码(留空则自动检测)
  4. 4输入目标语言代码(例如,日语为「ja」)
  5. 5输入新工作表名称或接受默认值
  6. 6选择是否将公式转换为值(是/否)

注意:翻译速度取决于单元格数量和您的互联网连接。包含500多个文本单元格的工作表可能需要几分钟。对于非常大的工作表(1000多个单元格),请考虑拆分成较小的批次。

重要说明

  • 速率限制:Microsoft Translator有使用限制。如果您翻译数千个单元格,可能会看到临时错误。请等待几分钟后重试。
  • 等待计算:运行宏后,在转换为值之前,请等待所有TRANSLATE公式完成计算。工作时状态栏会显示「正在计算...」。
  • 合并单元格:宏会保留合并单元格的格式,但只有合并区域的左上角单元格包含文本。合并中的其他单元格将保持为空。

支持的语言代码

在提示输入源语言或目标语言时使用这些代码:

代码语言
enEnglish
jaJapanese
zh-CNChinese (Simplified)
zh-TWChinese (Traditional)
koKorean
esSpanish
frFrench
deGerman
itItalian
ptPortuguese
ruRussian
arArabic
hiHindi
viVietnamese
thThai

提示:有关TRANSLATE函数支持的语言代码完整列表,请访问Microsoft官方文档

故障排除

「TRANSLATE函数不可用」

TRANSLATE函数需要Microsoft 365订阅。请确保您拥有最新版本的Excel,并且已登录您的Microsoft 365账户。

「宏已禁用」

转到文件 → 选项 → 信任中心 → 信任中心设置 → 宏设置,选择「启用所有宏」或「禁用所有宏并通知」。

「翻译返回#VALUE!错误」

这通常发生在单元格包含特殊字符或存在网络问题时。宏会跳过有错误的单元格并继续翻译。

「宏运行太慢」

包含数千个单元格的大型工作表可能需要时间。考虑将数据拆分成较小的工作表,或使用Doc2Lang的Excel翻译服务进行更快的批量处理。

「翻译不工作」或单元格显示#CONNECT!

TRANSLATE函数需要活动的互联网连接。检查您的网络连接并重试。企业防火墙也可能阻止访问Microsoft Translator服务。

视频教程

观看分步视频指南:

需要更准确的翻译?

Doc2Lang使用AI驱动的翻译,具有上下文感知能力,实现更高的准确性,同时保留所有格式、公式和样式。