Comment puis-je obtenir le format d'une cellule en VBA
Lors de l'itération par le biais de cellules dans une feuille de calcul, comment puis-je obtenir ce que le réglage du format de la cellule est? Parce que sur cette base, je voudrais créer une instruction SQL pour ajouter l'unique tiques ou non à la valeur récupéré
Dans quel format voulez-vous vérifier? Dans excel, le natif
Cell()
fonction fournit des informations de mise en forme.OriginalL'auteur Fat Owl | 2013-03-12
Vous devez vous connecter pour publier un commentaire.
Sonne comme vous avez besoin de la VarType() fonction.
Vartype(Range("A1"))
OK, si vous ne pas veux savoir le réglage du format de la cellule, mais si la valeur est numérique.
Pouvez-vous appeler
IsNumeric(Range("A1"))
et le citer siFalse
?Basé sur votre commentaire que certains numéros sont stockés en tant que texte dans la base de données, vous n'allez pas à résoudre ce problème en une simple formule. Ne pouvez-vous pas simplement de citer les valeurs que vous construisez votre instruction SQL?
Je pourrais utiliser =Cellule("format",A1), mais comment puis-je assigner à une variable?
le varType est toujours retourner à 8 cordes.
valeur = Trim(sht.Les cellules(dataStartingRow, c.La colonne).valeur) x = VarType(valeur)
Je pense que la Cellule est un worksheetfunction qui est appelable via l'Application.WorksheetFunction mais ce n'est pas le cas non plus. Toute aide os grandement apprécié
OriginalL'auteur nunzabar
Je ne pense pas qu'il soit la propriété d'une cellule qui indique si la cellule contient une valeur numérique, bien que
VarType()
pourrait de l'aide, il devient délicat car Excel permettra à un nombre de cellules mises en forme pour contenir la chaîne, et un texte mis en forme des cellules contiennent des valeurs numériques, sans écraser lesNumberFormat
de la propriété.En tout cas, vous avez probablement besoin de quelques test indépendant pour déterminer si une cellule IsNumeric (ou d'autres critères), ET si son
NumberFormat
est parmi une liste que vous pouvez définir.OriginalL'auteur David Zemens
Je ne pense pas que le format de la cellule est la chose la plus importante. C'est plutôt le type de données du champ de votre base de données. Si vous avez la chaîne 'foobar' dans une cellule et que vous créez une INSERTION DANS l'instruction sql qui tente de s'inscrire dans un champ de type Entier Long, c'est voué à l'échec, peu importe de les graduations.
À l'inverse, si une cellule contient une valeur numérique (par exemple 100) qui doit aller dans un champ de type VARCHAR, il aura besoin de les graduations (comme '100').
Si vous utilisez ADO, vérifiez la propriété Type de l'objet de Champ pour déterminer le type de données. Utilisez cette liste http://support.microsoft.com/kb/193947 pour voir ce que les types sont. Ensuite, configurez l'instruction SQL selon le type de champ.
OriginalL'auteur Dick Kusleika
Essayez d'utiliser les éléments suivants dans VBA:
Cela devrait vous indiquer si la valeur est vraiment du texte ou un nombre, indépendamment de la cellule de mise en forme des propriétés.
La clé est que les intrinsèque Excel IsNumber() fonctionne de mieux pour cela que la fonction VBA IsNumeric. IsNumber() indique si la valeur de la cellule est un nombre, alors que IsNumeric ne vous raconte pas si la cellule est mise en forme pour les valeurs numériques.
OriginalL'auteur Joe Brooks