Kun je me alsjeblieft laten weten wat de .NumberFormat
formaatopties zijn in Excel VBA? Zoals u weet ondersteunt Excel 2010 de volgende typen:
Ik weet dat we bijvoorbeeld Teksttype kunnen instellen als:
.NumberFormat ="@"
of voor nummer:
.NumberFormat = "0.00000"
Kun je me alsjeblieft laten weten wat andere opties zijn voor typen in VBA?
Antwoord 1, autoriteit 100%
Let op: dit werd gedaan in Excel voor Mac 2011, maar zou hetzelfde moeten zijn voor 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
Resultaat:
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)
(Ik heb zojuist een willekeurige invoer gekozen voor aangepast)
Antwoord 2, autoriteit 26%
Dankzij deze vraag (en antwoorden) heb ik een gemakkelijke manier ontdekt om de exacte NumberFormat-tekenreeks te krijgen voor vrijwel elk formaat dat Excel te bieden heeft.
Hoe u de NumberFormat String voor elk Excel-nummerformaat kunt verkrijgen
Stap 1: stel in de gebruikersinterface een cel in op de NumberFormat die u wilt gebruiken.
In mijn voorbeeld heb ik de Chinese (PRC) valuta geselecteerd uit de opties in de keuzelijst “Rekeningnummers formaat”.
Stap 2: Vouw de vervolgkeuzelijst Getalnotatie uit en selecteer “Meer getalnotaties…”.
Stap 3: Klik op het tabblad Nummer in Categorie op “Aangepast”.
Het gedeelte ‘Voorbeeld’ toont de Chinese (PRC) valutanotatie die ik heb toegepast.
Het invoervak “Type” bevat de tekenreeks NumberFormat die u programmatisch kunt gebruiken.
Dus in dit voorbeeld is de NumberFormat van mijn Chinese (PRC) Currency-cel als volgt:
_ [$¥-804]* #,##0.00_ ;_ [$¥-804]* -#,##0.00_ ;_ [$¥-804]* "-"??_ ;_ @_
Als je deze stappen uitvoert voor elke NumberFormat die je wenst, dan is de wereld van jou.
Ik hoop dat dit helpt.
Antwoord 3, autoriteit 9%
doversgeeft ons zijn geweldige antwoord en op basis daarvan kun je proberen het te gebruiken zoals
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)"; } }
}
Antwoord 4, autoriteit 6%
In Excel kunt u een Range.NumberFormat
instellen op elke tekenreeks, zoals u zou vinden in de “Aangepaste” indelingsselectie. In wezen heb je twee keuzes:
- Algemeenvoor geen bepaalde indeling.
- Een aangepaste opgemaakte tekenreeks, zoals “$#,##0”, om precies aan te geven welke indeling u gebruikt.
Antwoord 5, autoriteit 4%
De .NET-bibliotheek EPPlusimplementeert een gesprek van de tekenreeksdefinitie naar de ingebouwde nummer.
Zie klasse 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;
}
}
Als u een van deze indelingen gebruikt, identificeert Excel ze automatisch als een standaardindeling.