J'écris un outil qui synchronise une base de données simple avec des feuilles Excel. Chaque élément d'une table dans la base de données correspond à une ligne de la feuille de calcul. J'ai lu la feuille Excel dans l'outil à l'aide de C # et de l'interface Excel Interop Com, puis a comparé les valeurs des éléments '(c'est-à-dire l'une des colonnes de la feuille Excel) après la synchronisation pour vous assurer qu'elles sont égales.
hier J'ai trouvé un cas où la comparaison n'était pas vraie: p> La seconde est celle que j'ai lue dans Excel, et comme vous pouvez le constater, il a sauté la première apostrophe . Existe-t-il un moyen de dire Excel de traiter la cellule comme il suffit de texto (non, il suffit de définir le formatage de la cellule n'aident pas)? P> J'ai même essayé de copier la valeur ( Le résultat était que la valeur de la cellule cible est toujours S'il n'y a aucun moyen, je vais devoir faire quelque chose de moche comme p>
4 Réponses :
Essayez Donc, je suppose que vous auriez utilisé EDIT: OK, il n'a pas fonctionné (embarrassé). P> Excel traite la citation unique de départ spécialement .. Tellement spécialement que même des propriétés de cellule / plage obscur. pas avoir accès. La seule solution de contournement que je pouvais trouver est essentiellement la même chose que ce que vous pensiez initialement. Voici: P> ciblecell.value code> à la place.
.formula code> est la formule vue dans la barre formule tandis que
.value code> est la valeur évaluée de la cellule.
.Formula code> dans votre code d'origine aussi. Changer cela devrait fonctionner. P>
If VarType(cell) = 8 And Not cell.HasFormula Then
GetFormulaI = "'" & cell.Formula
Else
GetFormulaI = cell.Formula
End If
Non, ça n'aide pas - essayez-le vous-même. Voir ma fonction VBA mise à jour.
J'ai bien peur que l'apostrophe Je suggère de faire quelque chose de similaire à ce que vous avez suggéré, sauf que vous le mettez dans Excel, vérifiez le premier caractère et ajoutez un Alternativement, vous pouvez préparer une apostrophe à toutes les valeurs - si vous les souhaitez tous comme texte. De cette façon, vous n'avez pas besoin de la vérification de premier caractère supplémentaire. P> ' code> est un caractère spécial pour Excel lorsqu'il apparaît comme premier caractère d'une cellule comme vous avez trouvé. Il indique à Excel de traiter le reste de la chaîne en tant que texte, de sorte que vous puissiez entrer quelque chose comme
'34 .2 code> dans la cellule, et il le traitera comme la chaîne au lieu du nombre (pour la mise en forme et Donc). P>
supplémentaire code> s'il y en a déjà un. < / p>
Regardez la propriété de l'aide: p>
Si la propriété the Réponse basée sur l'article à: p>
http://excel.tips.net/pages/t003332_searching_for_leading_apostrophes.html p>
(Avertissement: pop-up légèrement gênant peut apparaître) P>
Edit: En réalité, cela ne sera probablement pas utile car Edit2: J'avais raison la première fois. PrefixCharacter CODE> de la plage code> objet code> qui correspond à cette cellule p>
transitionnavigkeys code> est
faux code>, ce personnage de préfixe sera '
pour une étiquette de texte ou vide. Si la
transitionnavigkeys code> propriété est
vrai code>,
Ce personnage sera 'pour un
étiquette de gauche justifiée, "pour un
étiquette justifiée à droite, ^ pour un
étiquette centrée, \ pour un répété
étiquette, ou vide. p>
blockQuote>
transitionnavigkeys code> concerne la compatibilité Lotus 1-2-3, de sorte que c'est probablement
faux code> p>
préfixcharacter code> est en lecture seule: ( em> p> p>
PrefixCharacter CODE> est renseigné uniquement si la valeur ajoutée à la cellule a démarré avec "alors il suffit de lire" Code> Préfixalaracter Code> Plus
et concaténate. Tant que
transitionnavigkeys code> est
false code>, c'est em> p>
Vous pouvez essayer de pré-en attente d'une citation unique à vos champs de texte ('' '+ dbfield) dans votre requête de sorte que pour les champs avec des guillemets simples intégrés, votre requête retournerait:
"stuff that wasn't in quotes"