Excel VBA 格式 (<Date>, "mmmmm-yy") 未按预期工作
Excel VBA Format(<Date>, "mmmmm-yy") not working as expected
我的 excel sheet 中有包含日期的单元格。
这些单元格的显示格式是自定义格式"mmmmm-yy"
因此日期“7/1/16”显示为 "S-16"。这种工作格式适用于 excel sheet,但是,在 VBA 中,我尝试在这些单元格上调用 Format() 函数,它不会产生相同的格式。
Format( <Date_Cell> , "mmmmm-yy")
给予
"April4-16"
以图表为例。
为什么 Format
函数的行为与格式化日期单元格不同?
编辑:根据 office 支持网站,Format a date the way you want,我使用了正确的格式,但没有产生网站声称的结果。
Edit2:正如所选答案指出的那样,单元格日期格式设置与 VBA 格式功能不同。
VBA Format
函数不支持 "mmmmm" 格式作为月份的第一个字母(有关支持的格式,请参阅 documentation)。您的输出实际上解析为 "mmmm"(月份名称),然后是 "m"(月份编号)。如果您只需要月份的第一个字母,则需要手动解析它:
Left$(MonthName(Month(<Date_Cell>)), 1) & "-" & Right$(CStr(Year(<Date_Cell>)), 2)
VBA函数Format and the Excel Date Format格式符号的含义并非100%相同
您可以像这样使用工作表函数 TEXT
:
Application.Text( <Date_Cell> , "mmmmm-yy")
实现你想要的。
多一个选项:
更改单元格的数字格式:
Range("A1").NumberFormat = "mmmmm-yy"
我的 excel sheet 中有包含日期的单元格。
这些单元格的显示格式是自定义格式"mmmmm-yy" 因此日期“7/1/16”显示为 "S-16"。这种工作格式适用于 excel sheet,但是,在 VBA 中,我尝试在这些单元格上调用 Format() 函数,它不会产生相同的格式。
Format( <Date_Cell> , "mmmmm-yy")
给予
"April4-16"
以图表为例。
为什么 Format
函数的行为与格式化日期单元格不同?
编辑:根据 office 支持网站,Format a date the way you want,我使用了正确的格式,但没有产生网站声称的结果。
Edit2:正如所选答案指出的那样,单元格日期格式设置与 VBA 格式功能不同。
VBA Format
函数不支持 "mmmmm" 格式作为月份的第一个字母(有关支持的格式,请参阅 documentation)。您的输出实际上解析为 "mmmm"(月份名称),然后是 "m"(月份编号)。如果您只需要月份的第一个字母,则需要手动解析它:
Left$(MonthName(Month(<Date_Cell>)), 1) & "-" & Right$(CStr(Year(<Date_Cell>)), 2)
VBA函数Format and the Excel Date Format格式符号的含义并非100%相同
您可以像这样使用工作表函数 TEXT
:
Application.Text( <Date_Cell> , "mmmmm-yy")
实现你想要的。
多一个选项:
更改单元格的数字格式:
Range("A1").NumberFormat = "mmmmm-yy"