2009-07-03 14 views
0

J'ai le code suivant pour rechercher la date à laquelle une valeur se produit dans une feuille séparée dans Excel 2000:Erreur 1004 lors de l'insertion formule de recherche

sSheet.Range(dateColumn & pRow) = _ 
    "=lookup(" & valColumn & pRow & ";'" & _ 
    iSheet.Name & "'!" & tColumn & firstRow & ":" & tColumn & lastRow & ";'" & _ 
    iSheet.Name & "'!" & dateColumn & firstRow & ":" & dateColumn & lastRow & ")" 

Cela échoue avec l'erreur 1004, qui semble être un fourre-tout complet. Le vrai kicker est que si j'insère une coche avant le signe égal dans la valeur, comme dans "'=lookup(", cela fonctionne très bien, et si je supprime manuellement la coche après, la formule fonctionne. Alors pourquoi refuse-t-il d'être inséré?

Répondre

2

Transforme le problème est que VBA ne respecte pas les paramètres de localisation lors de la création de formules - je devais utiliser des virgules au lieu de points-virgules pour séparer les arguments de la fonction de recherche.

+0

Haha J'ai cherché des heures à cause de ça ... Comment devrions-nous l'appeler? Punaise? MS méfait? –

0

Vous devez spécifier comme formule

sSheet.Range(dateColumn & pRow).Formula = _ 
"=lookup(" & valColumn & pRow & ";'" & _ 
iSheet.Name & "'!" & tColumn & firstRow & ":" & tColumn & lastRow & ";'" & _ 
iSheet.Name & "'!" & dateColumn & firstRow & ":" & dateColumn & lastRow & ")" 
+0

Non, j'ai essayé ça. – l0b0