excel - valor - propiedad formula vba
Escribe una fórmula en una celda de Excel usando VBA (5)
Estoy tratando de usar VBA para escribir una fórmula en una celda en Excel. Mi problema es que cuando uso un punto y coma ( ;
) en mi fórmula, aparece un error:
Error 1004
Mi macro es la siguiente:
Sub Jours_ouvres()
Dim Feuille_Document As String
Feuille_Document = "DOCUMENT"
Application.Worksheets(Feuille_Document).Range("F2").Formula = "=SUM(D2;E2)"
End Sub
No sé por qué, pero si usa
(...)Formula = "=SUM(D2,E2)"
('' , '' en lugar de '' ; ''), funciona.
Si revisa su sub en el editor de guiones de VB (F8), puede agregar Range("F2").Formula
a la ventana del reloj y ver cómo se ve el formulario desde un punto de vista de VB. Parece que el formulario que se muestra en Excel en sí es a veces diferente del formulario que VB ve ...
Puede intentar usar la propiedad FormulaLocal en lugar de la Fórmula. Entonces el punto y coma debería funcionar.
El carácter correcto (coma o dos puntos) depende del propósito.
Coma ( ,
) sumará solo las dos celdas en cuestión.
Colon (:) sumará todas las celdas dentro del rango con las esquinas definidas por esas dos celdas.
El caracter correcto para usar en este caso es un coma completo (:), no un punto y coma ( ;
).
Treb, el problema de Matthieu fue causado por el uso de Excel en un idioma diferente al inglés. En muchas versiones de idiomas ";" es el separador correcto Incluso las funciones se traducen (SUM puede ser SOMMA, SUMME o lo que sea, dependiendo del idioma en el que trabaje). Excel generalmente comprenderá estas diferencias y si un libro de trabajo creado en francés es abierto por un brasileño, normalmente no tendrá ningún problema. Pero VBA solo habla inglés de los Estados Unidos, por lo que para quienes trabajamos en uno (o más) idiomas extranjeros, esto puede ser un dolor de cabeza. Usted y CharlesB dieron respuestas que habrían estado bien para un usuario de los EE. UU., Pero Mikko entendió el problema REAL y dio la respuesta correcta (que también fue la correcta para mí; soy un británico que trabaja en Italia para un habla alemana empresa).