j'automatise Excel, en utilisant le système de macros comme guide pour ce que je dois faire grâce à l'automatisation. Lorsque je formate une colonne en tant que date, la macro a généré un NumberFormat
pour que la colonne soit:
[$-409]m/d/yy h:mm AM/PM;@
j'essaie de déchiffrer ce que cela signifie vraiment. je suppose de googler , que les valeurs entre crochets sont un "condition", et que si la condition:
$-409
est rencontré, il utilisera le NumberFormat
m/d/yy h:mm AM/PM
sinon, il utilise le NumberFormat
@
Les références que je trouve disent que le format numérique "@" est un espace réservé de texte
Mes questions sont donc:
Quel est le test conditionnel $ - 409 ? Est-ce en comparant quelque chose avec - 409 (ie négatif quatre cent neuf), et si oui, quel est le signe dollar c'est comparer avec?
Si le conditionnel échoue et qu'il a recours à l'espace réservé au texte "at-sign", que signifie-t-il?
Pour clarifier ce que les autres ont dit:
Le [$ -409] est un code local , donné en hexadécimal. Préfixer une date avec un certain code de paramètres régionaux détermine ce qui s'affiche lorsque vous utilisez les différents codes de format d'heure de date. Par exemple en utilisant la date
28 novembre 1973 11:28:13
comme exemple pour le tableau suivant:
Format Code 409 (English United States) 804 (Chinese PRC)
=========== =========================== =================
m 11 11
mm 11 11
mmm Nov 十一月
mmmm November 十一月
d 27 27
dd 27 27
ddd Mon 二
dddd Monday 星期二
y 73 73
yy 73 73
yyy 1973 1973
yyyy 1973 1973
AM/PM AM 上午
Donc, au final, le même code de format avec deux identifiants de paramètres régionaux différents, donne des résultats différents:
[$-409]mmmm dd yyyy h:mm AM/PM
November 27 1973 11:28 AM
[$-804]mmmm dd yyyy h:mm AM/PM
十一月 27 1973 11:28 上午
Étant donné que trouver une liste de codes régionaux équivaut à se tirer des dents, voici quelques références:
Constantes et chaînes d'identificateur de langue (Source principale, archive.is )
Codes de paramètres régionaux Windows triés par paramètres régionaux ( archive.is )
Codes de paramètres régionaux Windows triés par paramètres régionaux ( archive.org , archive.is )
Naaf et Grant Wagner ont parfaitement répondu à la question sur votre $-409
, je vais donc juste remplir la partie manquante:
Le '@' après le point-virgule indique à Excel comment traiter les données si vous entrez une chaîne au lieu d'une date valide. Le @
signifie simplement "placer n'importe quel texte ici, textuellement".
Quelques exemples rapides pour illustrer ce point:
=TEXT("abc","hh:mm;@")
abc
=TEXT("abc","hh:mm;@@")
abcabc
Voir cet article pour une description détaillée des options de mise en forme du texte.
Cet article l'explique. Fondamentalement, 409 est le ID de paramètres régionaux pour "Anglais - États-Unis". Si vous avez utilisé [$-414]
, par exemple, la date serait alors formatée pour "Norvégien (Bokmål)" à la place.
Ma conjecture pour la question (2) est que les données brutes seraient présentées sous forme de chaîne au lieu d'être formatées. Un test rapide vérifierait cela.
[$-409]
Ne semble pas être une condition. Il semble que ce soit un code régional.
Si je formate une cellule avec un format personnalisé de [$-409]m/d/yy h:mm AM/PM;@
, Saisissez une date: 1/1/9
, Puis affichez le formatage pour la cellule, je vois un format Date de m/d/yy h:mm AM/PM
avec un Locale (location) de English (United States)
.
Si vous changez le format en quelque chose comme [$-439]m/d/yy h:mm AM/PM;@
, Vous verrez le contenu de la cellule dans une autre langue.
Je ne suis pas sûr de @
. Il peut indiquer comment afficher la date si la police ou les paramètres régionaux appropriés ne sont pas disponibles.
Voici la liste des ID de paramètres régionaux attribués par Microsoft .
Il existe un bogue dans Excel 2007 qui modifie tous les formats généraux en un format de date de type [$ -409].
Normalement, l'utilisation de [$ -409] est un format correct.
Il n'y a pas encore de correctif pour le bogue fourni par Microsoft. Ce bogue se produit normalement dans les classeurs Excel volumineux et partagés.
Si vous avez déjà l'expérience où tous vos formats généraux changent en dates, essayez d'aller dans les styles de cellule, en cliquant avec le bouton droit sur Normal et en modifiant la normale en général. Il vous indiquera dans la boîte le type de format pour Normal. Il s'agit du bogue car il devrait généralement être "général" et non une version de [$ -409].
J'ai fini par devoir supprimer complètement le format du classeur. Le classeur doit être non partagé pour ce faire. Pour supprimer le format [$ -409] identifié ci-dessus sous le type de cellule "Normal" du classeur, cliquez avec le bouton droit sur une cellule, sélectionnez Personnalisé, faites défiler jusqu'à ce que vous trouviez le type de format [$ -409] identifié ci-dessus, supprimez puis tous les formats reviendra à ce qu'on appelle le général.