Excel VBA中的.NumberFormat选项是什么?
您能告诉我Excel VBA中的.NumberFormat格式选项是什么吗?如您所知,Excel 2010支持以下类型: 我知道我们可以将示例文本类型设置为:Excel VBA中的.NumberFormat选项是什么?,excel,vba,Excel,Vba,您能告诉我Excel VBA中的.NumberFormat格式选项是什么吗?如您所知,Excel 2010支持以下类型: 我知道我们可以将示例文本类型设置为: .NumberFormat ="@" 或编号: .NumberFormat = "0.00000" 您能告诉我VBA中的其他类型选项吗?注意,这是在Excel for Mac 2011上完成的,但在Windows上应该是相同的 宏: Sub numberformats() Dim rng A
.NumberFormat ="@"
或编号:
.NumberFormat = "0.00000"
您能告诉我VBA中的其他类型选项吗?注意,这是在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)
我刚刚在Excel中为custom选择了一个随机条目,您可以将Range.NumberFormat设置为任何字符串,就像您在custom format(自定义格式)选择中找到的那样。基本上,您有两种选择:
通用,无特殊格式。
自定义格式的字符串,如$,0,用于精确指定您使用的格式。
多亏了这个问题和答案,我发现了一种简单的方法,可以获得Excel提供的任何格式的确切数字格式字符串 如何获取任何Excel数字格式的NumberFormat字符串 步骤1:在用户界面中,将单元格设置为要使用的NumberFormat 在我的示例中,我从“帐号格式”组合框中包含的选项中选择了中国货币 步骤2:展开“数字格式”下拉列表并选择更多数字格式 步骤3:在“编号”选项卡的“类别”中,单击“自定义” 示例部分显示了我应用的中国货币格式 类型输入框包含可编程使用的NumberFormat字符串 因此,在本例中,我的中国货币单元格的NumberFormat如下所示:
_ [$¥-804]* #,##0.00_ ;_ [$¥-804]* -#,##0.00_ ;_ [$¥-804]* "-"??_ ;_ @_
如果你按照你想要的每一个数字格式来做这些步骤,那么这个世界就是你的了
我希望这能有所帮助。多佛斯给了我们一个很好的答案,在此基础上,你可以试着像这样使用它
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)"; } }
}
NET库实现了从字符串定义到内置数字的对话。
见课堂:
内部静态int GetFromBuildFromFormatString格式
{
开关格式
{
一般情况:
返回0;
案例0:
返回1;
案例0.00:
返回2;
案例,0:
返回3;
案例,0.00:
返回4;
案例0%:
返回9;
案例0.00%:
返回10;
案例0.00E+00:
返回11;
案例?/?:
返回12;
案例???:
返回13;
案件年月日:
返回14;
案例d-mmm-yy:
返回15;
案例d-mmm:
返回16;
案例mmm yy:
返回17;
案例h:mm上午/下午:
返回18;
案例h:mm:ss AM/PM:
返回19;
案例h:mm:
返回20;
案例h:mm:ss:
返回21;
案例m/d/yy h:mm:
返回22;
大小写,0;,0:
返回37;
大小写,0;[红色],0:
返回38;
案例,0.00;,0.00:
返回39;
外壳,0.00;[红色],:
返回40;
案例mm:ss:
返回45;
外壳[h]:毫米:不锈钢:
返回46;
案例mmss.0:
返回47;
案例0.0:
返回48;
案例@:
返回49;
违约:
返回int.MinValue;
}
}
当您使用其中一种格式时,Excel会自动将其识别为标准格式。为什么不记录一个宏并进行检查?在“格式单元格”对话框中也可以看到这一点,单击所需的格式类型,例如“会计”,然后单击“自定义”。右下角的列表显示当前会计'格式字符串以及其他字符串。上面的文本框显示该项的NumberFormat字符串。你可以直接从文本框中复制/粘贴到代码中的字符串中。谢谢Ken,这正是我想要的。这是我创建的一个有点愚蠢但色彩鲜艳的自定义格式预览网页:需要转义会计的s,以防止使用该代码的vba中出现错误。我需要知道“转义”是什么意思。你是说为了在VBA中工作,我们需要双重引用hashmark吗?就我个人而言,我更喜欢&chr34&-它更干净。我尝试过你的方法,但虽然我确实找到了我想要的格式,但世界仍然不是我的。请提出建议;你完全正确。我年轻时的乐观情绪没有变老!