excel vba excel-vba regional-settings

excel - Problema de diferentes idiomas al insertar fórmula desde VBA



excel-vba regional-settings (1)

VBA está muy centrado en EN-US. .Formula y .FormulaR1C1 VBA esperan la función ROW . Para utilizar la función de idioma regional ''sabores'' como СТРОКА se debe utilizar la propiedad Range.FormulaLocal o Range.FormulaR1C1Local .

Lo mismo se aplica a los caracteres separadores de listas. Use una coma (por ejemplo , ) para separar los argumentos en una función cuando use .Formula o .FormulaR1C1 independientemente de la configuración regional del sistema. Si su sistema usa un punto y coma (p ; Ej ; ) Como el carácter separador de lista, esto solo debe usarse con .FormulaLocal o .FormulaR1C1Local.

El resultado en la hoja de trabajo reflejará correctamente la configuración de idioma de la instalación de Office.

myRange.Formula = "=ROW(mySheet!$12:$12)" myRange.FormulaR1C1 = "=ROW(mySheet!R12)" myRange.FormulaLocal = "=СТРОКА(mySheet!$12:$12)" myRange.FormulaR1C1Local= "=СТРОКА(mySheet!R12)"

entiendo correctamente que si uso un comando como

Set myRange.formula = “=ROW(mySheet!R12)”

mi macro causará #NAME? El error aparece en las celdas si se ejecuta en, por ejemplo, Excel ruso. Quiero decir que en este caso la fórmula anterior debería estar codificada como

Set myRange.formula = “=СТРОКА(mySheet!R12)”

donde СТРОКА es el análogo ruso de la función SUMA. No esperaría que Excel fuera lo suficientemente inteligente como para traducir las fórmulas en tiempo de ejecución. Entonces, ¿hay alguna forma de evitar esto y, lo que es más importante, cuál es el código más genérico para que la macro funcione correctamente, independientemente de languange?