Excel VBA格式(<date>,&#34; mmmmm-yy&#34;)未按预期工作

时间:2016-09-30 17:36:18

标签: excel vba date-formatting

我的Excel工作表中包含一个包含日期的单元格。

这些单元格的显示格式是自定义格式&#34; mmmmm-yy&#34; 这样的日期&#34; 7/1/16&#34;显示为&#34; S-16&#34;。这种工作格式适用于Excel工作表,但是,在VBA中我尝试在这些单元格上调用Format()函数,它不会产生相同的格式。

Format( <Date_Cell> , "mmmmm-yy")

给予

"April4-16"
例如,在图表上

为什么Format函数的行为与格式化日期单元格的行为不相同?

编辑:根据办公室支持网站Format a date the way you want,我使用了正确的格式,但它没有产生网站声称的结果。

Edit2:关闭单元格日期格式的工作方式与VBA格式功能不同,因为所选答案指出了。

3 个答案:

答案 0 :(得分:4)

VBA Format功能不支持&#34; mmmmm&#34;格式为当月的第一个字母(有关支持的格式,请参阅documentation)。您的输出实际上正在解析为&#34; mmmm&#34; (月份名称),然后&#34; m&#34; (月号)。如果您只需要当月的第一个字母,则需要手动解析:

Left$(MonthName(Month(<Date_Cell>)), 1) & "-" & Right$(CStr(Year(<Date_Cell>)), 2)

答案 1 :(得分:4)

VBA函数FormatExcel Date Format的格式符号的含义并非完全相同。

您可以使用工作表函数TEXT,如:

Application.Text( <Date_Cell> , "mmmmm-yy")

实现你想要的目标。

答案 2 :(得分:2)

还有一个选择:

更改单元格的数字格式:

Range("A1").NumberFormat = "mmmmm-yy"