Comment convertir une chaîne en nombre et vice versa dans Excel
J'ai quelques fichiers XML qui contiennent des nombres décimaux stockées avec des". " comme séparateur décimal. J'ai créé un classeur Excel qui est utilisé pour l'édition des données en XML. MSXML est utilisé pour lire les données à partir de XML qui sont ensuite affichées dans les feuilles de calcul. Une fois que les données sont stockées j'ai modifier le DOM de la structure avec de nouvelles valeurs lues à partir de tables et je sauvegarde XML.
Le problème est que lorsque je convertir des nombres décimaux en arrière pour les chaînes, de les enregistrer comme valeurs dans le XML, le séparateur décimal est spécifiée par l'utilisateur dans les paramètres régionaux de Windows est utilisé.
J'ai besoin d'un moyen de forcer le stockage des nombres décimaux avec des". " comme séparateur décimal dans tous les cas. Est-ce possible?
OriginalL'auteur bombardier | 2011-05-29
Vous devez vous connecter pour publier un commentaire.
Comment modifier le DOM de la structure avec les nouvelles valeurs--par programmation? Comment?
Est-il possible pour vous d'utiliser
Format(Cell.value, "#0.0")
? Essayez égalementFormat(CDbl(Cell.Value), "#0.0")
. Si cela ne fonctionne pas, pouvez-vous simplement jeter dans unReplace(Value, ",", ".")
? Cela devrait être ok si vous n'êtes pas à l'aide de séparateurs de milliers.mise à jour de réponse
À l'aide de Remplacer est ma dernière solution. J'ai juste besoin de s'assurer qu'il n'existe pas de nombres qui contiennent à la fois décimal et le séparateur des milliers à l'aide de la fonction Format.
OriginalL'auteur ErikE
Utiliser le
Str
fonction. Il ne reconnaît que la période.
comme séparateur décimal valide.Noter que
Str
se réserve un espace pour le signe du nombre. Si vous ne voulez pas l'un des leaders de l'espace sur votre nombres positifs, justeTrim
le résultat:If CDbl("1.000") = 1000 Then num = CDbl(Replace(value, ".", ",")) Else num = CDbl(value) End If
Vous n'avez pas de demander quelque chose qui fonctionne dans les deux sens... Mais votre solution dirait que c'est une bonne façon de le faire.
OriginalL'auteur Jean-François Corbett
@Jean-Francois puisque nous parlons de l'i18n vous devez utiliser CStr ( pour les demandes internationales ) fonction au lieu de Str ( où . dot est un séparateur pour nombre flottant , pas beaucoup d'utilisation en français, où la virgule est un séparateur ex : 7,54)
.
comme séparateur décimal dans tous les cas". C'est ce que ma réponse n'.OriginalL'auteur Raymond Chenon