使用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打开您的Excel文件
- 2转到文件 → 另存为
- 3从文件类型下拉列表中选择Excel启用宏的工作簿 (*.xlsm)
- 4点击保存
重要:普通的.xlsx文件不能包含宏。您必须另存为.xlsm才能使用VBA代码。
打开VBA编辑器
Keyboard Shortcut
按Alt + F11(Windows)或Option + F11(Mac)
替代方法
- 1.转到开发工具选项卡
- 2.点击Visual Basic
提示:如果看不到开发工具选项卡,请转到文件 → 选项 → 自定义功能区并勾选开发工具。
下载并导入VBA代码
如何导入.bas文件
- 1下载
TranslateSheet.bas文件 - 2在VBA编辑器中,转到文件 → 导入文件...
- 3选择下载的
TranslateSheet.bas文件 - 4模块将出现在项目的Modules文件夹中
替代方法:您也可以直接从GitHub复制代码并粘贴到新模块中(插入 → 模块)。
运行宏
- 1确保要翻译的工作表处于活动状态
- 2按Alt + F8打开宏对话框,选择TranslateActiveSheetToNewSheet,然后点击运行
- 3输入源语言代码(留空则自动检测)
- 4输入目标语言代码(例如,日语为「ja」)
- 5输入新工作表名称或接受默认值
- 6选择是否将公式转换为值(是/否)
注意:翻译速度取决于单元格数量和您的互联网连接。包含500多个文本单元格的工作表可能需要几分钟。对于非常大的工作表(1000多个单元格),请考虑拆分成较小的批次。
重要说明
- 速率限制:Microsoft Translator有使用限制。如果您翻译数千个单元格,可能会看到临时错误。请等待几分钟后重试。
- 等待计算:运行宏后,在转换为值之前,请等待所有TRANSLATE公式完成计算。工作时状态栏会显示「正在计算...」。
- 合并单元格:宏会保留合并单元格的格式,但只有合并区域的左上角单元格包含文本。合并中的其他单元格将保持为空。
支持的语言代码
在提示输入源语言或目标语言时使用这些代码:
| 代码 | 语言 |
|---|---|
| en | English |
| ja | Japanese |
| zh-CN | Chinese (Simplified) |
| zh-TW | Chinese (Traditional) |
| ko | Korean |
| es | Spanish |
| fr | French |
| de | German |
| it | Italian |
| pt | Portuguese |
| ru | Russian |
| ar | Arabic |
| hi | Hindi |
| vi | Vietnamese |
| th | Thai |
提示:有关TRANSLATE函数支持的语言代码完整列表,请访问Microsoft官方文档。
故障排除
「TRANSLATE函数不可用」
TRANSLATE函数需要Microsoft 365订阅。请确保您拥有最新版本的Excel,并且已登录您的Microsoft 365账户。
「宏已禁用」
转到文件 → 选项 → 信任中心 → 信任中心设置 → 宏设置,选择「启用所有宏」或「禁用所有宏并通知」。
「翻译返回#VALUE!错误」
这通常发生在单元格包含特殊字符或存在网络问题时。宏会跳过有错误的单元格并继续翻译。
「宏运行太慢」
包含数千个单元格的大型工作表可能需要时间。考虑将数据拆分成较小的工作表,或使用Doc2Lang的Excel翻译服务进行更快的批量处理。
「翻译不工作」或单元格显示#CONNECT!
TRANSLATE函数需要活动的互联网连接。检查您的网络连接并重试。企业防火墙也可能阻止访问Microsoft Translator服务。
视频教程
观看分步视频指南:
需要更准确的翻译?
Doc2Lang使用AI驱动的翻译,具有上下文感知能力,实现更高的准确性,同时保留所有格式、公式和样式。