Comment réparer cette erreur 1004? Réérez la ligne

J'ai la ligne de code suivante dans VBA:

Range("A40:A64").Formula = "=IF(index(optional_processes,row()-39)=0;"";optional_processes,row()-39))" 

Sans l' if-statement , certaines cellules affichent 0 . Je veux que ces 0 soient en blanc. C'est ce que l' if-statement devrait faire. Je pense que cela donne l'erreur de l'application ou de l'object en raison des guillemets doubles dans la déclaration. Comment puis-je get des cellules vierges au lieu de 0 ?

Même si vous utilisez Excel local ; (point virgule) comme séparateur de parameters dans les formules, lors de l'écriture d'une formule avec VBA, vous devez utiliser (virgule)

À côté de cela, il existe d'autres problèmes avec la formule:

  • Vous manquez un index à l' else
  • Utilisez """" plutôt que "" comme le suggère Kresimir
  • Utilisez un ISERROR comme Kiran écrit dans sa première suggestion

Je pense que cela fonctionnera:

 Range("A40:A64").Formula = "=IF(isError(index(optional_processes,row()-39)),"""",index(optional_processes,row()-39))" 

Essaye ça:

 Range("A40:A64").Formula = "=IF(ISERROR(index(optional_processes,row()-39)),'',index(optional_processes,row()-39))" 

OU

 Range("A40:A64").Formula = "=IF(index(optional_processes,row()-39)=0,"""",index(optional_processes,row()-39))"