Traducir hoja de Excel con VBA + TRANSLATE()
Traduce automáticamente una hoja de Excel completa usando VBA y la función integrada =TRANSLATE().
Si alguna vez has necesitado traducir una hoja de cálculo completa (factura, lista de productos, lista de empaque, etc.) sin romper el diseño, este enfoque funciona bien:
- Mantén tu hoja original intacta
- Crea una nueva hoja "traducida" con el mismo formato
- Usa la función integrada
=TRANSLATE()de Excel para traducir automáticamente cada celda de texto
=TRANSLATE() es una función de Excel basada en la nube impulsada por Microsoft Translator. Requiere conexión a Internet. Está disponible en Excel para Microsoft 365 (incluyendo Mac), Excel para la web y móvil, pero puede que aún no exista en algunas versiones/canales.
Antes de empezar: confirma que =TRANSLATE() existe en tu Excel
En cualquier celda, intenta:
=TRANSLATE("hello","en","es")Si obtienes #NAME?, tu versión de Excel aún no tiene la función. Microsoft indica que es compatible con Microsoft 365 / web / móvil y está basada en servicios.
También se ha introducido como nueva función a través de los canales Microsoft 365 Insider, por lo que la disponibilidad puede depender del canal de actualización/despliegue.
Lo que construirás
Una macro VBA que:
- Crea una copia de tu hoja activa
- Traduce todas las celdas de texto usando la función
=TRANSLATE() - Preserva números, fórmulas y formato
- Nombra la nueva hoja con el código del idioma destino
Requisitos previos
- Suscripción a Microsoft 365 (la función
=TRANSLATE()requiere Microsoft 365) - Excel para Windows o Mac (la versión Web tiene soporte VBA limitado)
- Macros habilitadas en la configuración de Excel
Guardar tu archivo como libro habilitado para macros
- 1Abre tu archivo de Excel
- 2Ve a Archivo → Guardar como
- 3Selecciona Libro de Excel habilitado para macros (*.xlsm) del menú desplegable de tipo de archivo
- 4Haz clic en Guardar
Importante: Los archivos .xlsx normales no pueden contener macros. Debes guardar como .xlsm para usar código VBA.
Abrir el editor VBA
Keyboard Shortcut
Presiona Alt + F11 (Windows) u Option + F11 (Mac)
Método alternativo
- 1.Ve a la pestaña Desarrollador
- 2.Haz clic en Visual Basic
Consejo: Si no ves la pestaña Desarrollador, ve a Archivo → Opciones → Personalizar cinta de opciones y marca la casilla Desarrollador.
Descargar e importar el código VBA
Obtener la macro VBA desde GitHub
Descarga el archivo TranslateSheet.bas de nuestro repositorio de código abierto.
Cómo importar el archivo .bas
- 1Descarga el archivo
TranslateSheet.bas - 2En el editor VBA, ve a Archivo → Importar archivo...
- 3Selecciona el archivo
TranslateSheet.basdescargado - 4El módulo aparecerá en la carpeta Módulos de tu proyecto
Alternativa: También puedes copiar el código directamente desde GitHub y pegarlo en un nuevo módulo (Insertar → Módulo).
Ejecutar la macro
- 1Asegúrate de que la hoja que quieres traducir esté activa
- 2Presiona Alt + F8 para abrir el diálogo de Macros, selecciona TranslateActiveSheetToNewSheet, luego haz clic en Ejecutar
- 3Ingresa el código del idioma origen (deja en blanco para detección automática)
- 4Ingresa el código del idioma destino (ej., "ja" para japonés)
- 5Ingresa el nombre de la nueva hoja o acepta el predeterminado
- 6Elige si quieres convertir fórmulas a valores (Sí/No)
Nota: La velocidad de traducción depende del número de celdas y tu conexión a Internet. Hojas con más de 500 celdas de texto pueden tardar varios minutos. Para hojas muy grandes (1000+ celdas), considera dividirlas en lotes más pequeños.
Notas importantes
- Límites de tasa: Microsoft Translator tiene límites de uso. Si traduces miles de celdas, puedes ver errores temporales. Espera unos minutos e intenta de nuevo.
- Esperar el cálculo: Después de ejecutar la macro, espera a que todas las fórmulas TRANSLATE terminen de calcular antes de convertir a valores. Verás "Calculando..." en la barra de estado mientras trabaja.
- Celdas combinadas: La macro preserva el formato de celdas combinadas, pero solo la celda superior izquierda de un área combinada contiene texto. Otras celdas en la combinación permanecerán vacías.
Códigos de idioma compatibles
Usa estos códigos cuando se te pida el idioma origen o destino:
| Código | Idioma |
|---|---|
| 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 |
Consejo: Para una lista completa de códigos de idioma compatibles con la función TRANSLATE, visita la documentación oficial de Microsoft.
Solución de problemas
"Función TRANSLATE no disponible"
La función TRANSLATE requiere una suscripción a Microsoft 365. Asegúrate de tener la última versión de Excel y de haber iniciado sesión en tu cuenta de Microsoft 365.
"Las macros están deshabilitadas"
Ve a Archivo → Opciones → Centro de confianza → Configuración del Centro de confianza → Configuración de macros y selecciona "Habilitar todas las macros" o "Deshabilitar todas las macros con notificación".
"La traducción devuelve error #¡VALOR!"
Esto generalmente ocurre cuando la celda contiene caracteres especiales o hay un problema de red. La macro omite celdas con errores y continúa traduciendo.
"La macro se ejecuta muy lento"
Hojas grandes con miles de celdas pueden tardar tiempo. Considera dividir tus datos en hojas más pequeñas o usa el servicio de traducción de Excel de Doc2Lang para procesamiento por lotes más rápido.
"La traducción no funciona" o las celdas muestran #CONNECT!
La función TRANSLATE requiere una conexión a Internet activa. Verifica tu conexión de red e intenta de nuevo. Los firewalls corporativos también pueden bloquear el acceso a los servicios de Microsoft Translator.
Tutorial en video
Mira la guía en video paso a paso:
¿Necesitas una traducción más precisa?
Doc2Lang usa traducción impulsada por IA con conciencia del contexto para mayor precisión, preservando todo el formato, fórmulas y estilos.