2016-11-20 10 views
1

J'ai ces lignes de code dans Excel.à quoi sert @ (At) dans VBA Excel?

ActiveSheet.ListObjects("Table_owssvr").Range.AutoFilter Field:=9, Criteria1 :="=Support started" 
Range("T2").FormulaR1C1 = "=FindStart([@Created])" 

Dans la feuille Excel il y a une colonne appelée Created, mais quand j'utilise le même code avec les mêmes données dans une feuille Excel différente, il ne fonctionne pas. Il y a une erreur ici Range("T2").FormulaR1C1 = "=FindStart([@Created])"

Alors, est-ce que [@Created] fait référence à une colonne ou est-il utilisé comme paramètre dans Access ou SQL statment où vous le passez en paramètre?

+1

C'est la syntaxe de la formule Table. Il doit y avoir une table Excel (pas seulement une table de données régulière, mais un tableau Excel spécial) qui a un tel nom de colonne – MacroMarc

+0

Je pense que cela signifie que créé est défini comme un type de données décimal. Tout comme si vous utilisiez dim créé comme décimal. Peut-être tort si :-) $ est pour la chaîne par exemple. – Niclas

+2

Rechercher "Références structurées" - E.g. https://support.office.com/fr-fr/article/Using-structured-references-with-Excel-tables-f5ed2452-2337-4f71-bed3-c8ae6d2b276e –

Répondre

1

Votre erreur peut survenir à cause de la version du fichier Excel que vous avez. Essayez d'utiliser ceci:

Range("T2").FormulaR1C1 = "=FindStart([@[Created]])" 

La différence entre ce [@Created] et ce [@[Created]]. Vous devez le changer pour le plus tard. Normalement, @Created est utilisé comme paramètre, et dans ce cas, il fait référence à une colonne de votre feuille.