Pouvez-vous s'il vous plaît laissez-moi savoir quelles sont les options de formatage .NumberFormat
dans Excel VBA? Comme vous le savez parfaitement, Excel 2010 prend en charge les types suivants:
Je sais que nous pouvons définir par exemple le type de texte comme suit:
.NumberFormat ="@"
ou pour numéro:
.NumberFormat = "0.00000"
Pouvez-vous s'il vous plaît laissez-moi savoir quelles sont les autres options pour les types dans VBA?
Notez que ceci a été fait sur Excel pour Mac 2011 mais devrait être identique pour Windows
Macro:
Sub numberformats()
Dim rng As Range
Set rng = Range("A24:A35")
For Each c In rng
Debug.Print c.NumberFormat
Next c
End Sub
Résultat:
General General
Number 0
Currency $#,##0.00;[Red]$#,##0.00
Accounting _($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)
Date m/d/yy
Time [$-F400]h:mm:ss am/pm
Percentage 0.00%
Fraction # ?/?
Scientific 0.00E+00
Text @
Special ;;
Custom #,##0_);[Red](#,##0)
(Je viens de choisir une entrée aléatoire pour la coutume)
Grâce à cette question (et à ses réponses), j'ai découvert un moyen simple d'obtenir exactement la chaîne NumberFormat correspondant à pratiquement tous les formats proposés par Excel.
Étape 1 : Dans l'interface utilisateur, définissez une cellule sur NumberFormat que vous souhaitez utiliser.
Dans mon exemple, j'ai sélectionné la devise chinoise (RPC) parmi les options de la liste déroulante "Format des numéros de compte".
Étape 2 : Développez la liste déroulante Format du nombre et sélectionnez "Plus de formats de chiffres ...".
Étape 3 : Dans l'onglet Nombre, dans Catégorie, cliquez sur "Personnalisé".
La section "Exemple" affiche le format de devise chinoise (RPC) que j'ai appliqué.
La zone de saisie "Type" contient la chaîne NumberFormat que vous pouvez utiliser par programme.
Ainsi, dans cet exemple, le NumberFormat de ma cellule de devise chinoise (RPC) est le suivant:
_ [$¥-804]* #,##0.00_ ;_ [$¥-804]* -#,##0.00_ ;_ [$¥-804]* "-"??_ ;_ @_
Si vous suivez ces étapes pour chaque NumberFormat que vous désirez, le monde vous appartient.
J'espère que ça aide.
dovers nous donne sa bonne réponse et vous pouvez essayer de l'utiliser comme
public static class CellDataFormat
{
public static string General { get { return "General"; } }
public static string Number { get { return "0"; } }
// Your custom format
public static string NumberDotTwoDigits { get { return "0.00"; } }
public static string Currency { get { return "$#,##0.00;[Red]$#,##0.00"; } }
public static string Accounting { get { return "_($* #,##0.00_);_($* (#,##0.00);_($* \" - \"??_);_(@_)"; } }
public static string Date { get { return "m/d/yy"; } }
public static string Time { get { return "[$-F400] h:mm:ss am/pm"; } }
public static string Percentage { get { return "0.00%"; } }
public static string Fraction { get { return "# ?/?"; } }
public static string Scientific { get { return "0.00E+00"; } }
public static string Text { get { return "@"; } }
public static string Special { get { return ";;"; } }
public static string Custom { get { return "#,##0_);[Red](#,##0)"; } }
}
Dans Excel, vous pouvez définir un Range.NumberFormat
pour n’importe quelle chaîne, comme dans la sélection de format "Personnalisé". Vous avez essentiellement deux choix:
La bibliothèque .NET EPPlus implémente une conversation de la définition de chaîne au numéro intégré . Voir classe ExcelNumberFormat :
internal static int GetFromBuildIdFromFormat(string format)
{
switch (format)
{
case "General":
return 0;
case "0":
return 1;
case "0.00":
return 2;
case "#,##0":
return 3;
case "#,##0.00":
return 4;
case "0%":
return 9;
case "0.00%":
return 10;
case "0.00E+00":
return 11;
case "# ?/?":
return 12;
case "# ??/??":
return 13;
case "mm-dd-yy":
return 14;
case "d-mmm-yy":
return 15;
case "d-mmm":
return 16;
case "mmm-yy":
return 17;
case "h:mm AM/PM":
return 18;
case "h:mm:ss AM/PM":
return 19;
case "h:mm":
return 20;
case "h:mm:ss":
return 21;
case "m/d/yy h:mm":
return 22;
case "#,##0 ;(#,##0)":
return 37;
case "#,##0 ;[Red](#,##0)":
return 38;
case "#,##0.00;(#,##0.00)":
return 39;
case "#,##0.00;[Red](#,#)":
return 40;
case "mm:ss":
return 45;
case "[h]:mm:ss":
return 46;
case "mmss.0":
return 47;
case "##0.0":
return 48;
case "@":
return 49;
default:
return int.MinValue;
}
}
Lorsque vous utilisez l'un de ces formats, Excel les identifie automatiquement en tant que format standard.