2017-09-07 1 views
1
Worksheets("sheet2").Range("C2").Formula = "=AVERAGEIFS(Sheet1!E:E,Sheet1!A:A," >= "&A2,Sheet1!A:A," < "&B2)" 

J'ai couru le code ci-dessus dans Excel 2007 et je reçois unIncompatibilité de type lors de la définition d'une formule dans une cellule avec VBA

Erreur de temps d'exécution 13 incompatibilité de type

Le code ci-dessus est utilisé pour faire une opération moyenne à partir de la feuille 1 et entrer dans la feuille 2. Je demande de l'aide pour corriger l'erreur.

Répondre

0

Le problème est que vous devez échapper les guillemets avec une autre citation. Cela signifie que toutes les citations " dans la formule deviennent "".

Si la formule dans cette cellule doit être

=AVERAGEIFS(Sheet1!E:E,Sheet1!A:A,">=" & A2,Sheet1!A:A,"<" & B2) 

et vous mettre dans une chaîne entre guillemets " your formula here ", alors vous devez échapper à toutes les citations dans la formule et changer un " dans un "" comme ci-dessous :

Worksheets("sheet2").Range("C2").Formula = _ 
    "=AVERAGEIFS(Sheet1!E:E,Sheet1!A:A,"">="" & A2,Sheet1!A:A,""<"" & B2)" 

une autre option serait d'utiliser le Chr(34) au lieu d'un ".

Worksheets("sheet2").Range("C2").Formula = _ 
    "=AVERAGEIFS(Sheet1!E:E,Sheet1!A:A," & Chr(34) & ">=" & Chr(34) & " & A2,Sheet1!A:A," & Chr(34) & "<" & Chr(34) & " & B2)" 

Ceci est techniquement le même mais pas très lisible par l'homme dans ce cas.