您能告诉我Excel VBA中的.NumberFormat
格式选项吗?您完全了解Excel 2010支持以下类型:
我知道我们可以将示例文本类型设置为:
.NumberFormat ="@"
或编号:
.NumberFormat = "0.00000"
您能告诉我VBA中其他类型的选项吗?
答案 0 :(得分:70)
请注意,这是在Excel for Mac 2011上完成的,但对Windows应该是相同的
宏:
Sub numberformats()
Dim rng As Range
Set rng = Range("A24:A35")
For Each c In rng
Debug.Print c.NumberFormat
Next c
End Sub
结果:
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)
(我刚刚为自定义选择了一个随机条目)
答案 1 :(得分:18)
感谢这个问题(和答案),我发现了一种简单的方法来获取Excel提供的几乎任何格式的确切NumberFormat字符串。
第1步:在用户界面中,将单元格设置为您要使用的NumberFormat。
在我的例子中,我从“账号格式”组合框中包含的选项中选择了中国(PRC)货币。
第2步:展开“数字格式”下拉菜单,然后选择“更多数字格式...”。
第3步:在“数字”标签的“类别”中,点击“自定义”。
“示例”部分显示我应用的中文(PRC)货币格式。
“类型”输入框包含可以编程方式使用的NumberFormat字符串。
因此,在此示例中,我的中文(PRC)货币单元格的NumberFormat如下:
_ [$¥-804]* #,##0.00_ ;_ [$¥-804]* -#,##0.00_ ;_ [$¥-804]* "-"??_ ;_ @_
如果你为你想要的每个NumberFormat做了这些步骤,那么这个世界就是你的。
我希望这会有所帮助。
答案 2 :(得分:7)
dovers 给了我很好的答案,在此基础上你可以尝试使用它
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)"; } }
}
答案 3 :(得分:5)
在Excel中,您可以将Range.NumberFormat
设置为任何字符串,就像在" Custom"中找到的那样。格式选择。基本上,您有两种选择:
答案 4 :(得分:0)
.NET库EPPlus实现了从字符串定义到内置数字的对话。 参见课程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;
}
}
使用这些格式之一时,Excel会自动将它们识别为标准格式。