2008-12-04 46 views
19

Estoy tratando de usar VBA para escribir una fórmula en una celda en Excel. Mi problema es que cuando se utiliza un punto y coma (;) en mi fórmula, me sale un error:Escribir una fórmula en una celda de Excel usando VBA

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 

Respuesta

18

Puede intentar usar la propiedad FormulaLocal en lugar de la fórmula. Entonces el punto y coma debería funcionar.

+0

¡Buen punto! No me di cuenta de que las fórmulas de Excel podían usar diferentes personajes en diferentes lugares (!) ¡Qué pesadilla! –

5

El carácter correcto a usar en este caso es un punto completo (:), no un punto y coma (;).

-1

no sé por qué, pero si se utiliza

(...)Formula = "=SUM(D2,E2)" 

(', 'en lugar de' ;'), funciona.

Si revisa su sub en el editor de secuencia de comandos 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 VB. Parece que el formulario que se muestra en Excel en sí es a veces diferente del formulario que VB ve ...

+2

Esa fórmula solo agrega celdas D2 y E2. Funciona en este caso, porque ese rango solo tenía dos celdas. Si el rango fuera D2: G2, por ejemplo, usar la coma agregaría solo la primera y la última celda del rango: D2 y G2, no las cuatro. –

+0

Para los downvoters: Si bien eJames es correcto en su respuesta más general, mi respuesta es correcta en este caso específico. Si bajas tu voto, explica por qué. – Treb

5

El carácter correcto (coma o dos puntos) depende de la finalidad.

Coma (,) sumará solo las dos celdas en cuestión.

Columna (:) sumará todas las celdas dentro del rango con las esquinas definidas por esas dos celdas.

+0

Esta no es la razón del error. Ver la respuesta aceptada. – brettdj

5

Treb, el problema de Matthieu fue causado por el uso de Excel en un idioma que no es el 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 habla solo inglés de los EE. UU., Por lo tanto, para quienes trabajamos en uno (o más) idiomas extranjeros, esto puede ser un dolor de cabeza. Tanto usted como CharlesB dieron respuestas que habrían sido aceptables para un usuario de EE. UU., Pero Mikko respondió 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 alemán). compañía de habla).

Cuestiones relacionadas