根据excel中的数字显示月份名称

我不知道是否有一种方法来显示一个单元格容器的内容整数(1-12)作为月份的名称(1月至12月)。 如果我这样做:

With Cells("A1") .NumberFormatLocal = "MMM" .Value = 5 End With 

Excel读取值为5的date为1900年1月5日,因此返回Jan,而我想要的是May。

事情是我不想在单元格A1中写入date,但只有一个整数。 当单元格A1被值复制到另一个单元格或读取时,我希望复制/读取的值是5,而不是42129,就好像它是2015年5月5日。所以转换不是我想要的。

是否有任何自定义代码的格式和其他技术,可以帮助显示值1-12作为1月至12月? 任何帮助表示赞赏!

如果你绕过date和数字的规则是至关重要的,那么写出12条条件格式规则; 一个用于每个数字/月份名称从1到12,并提供一个“文字”自定义格式掩码,用于表示缩写的月份。

 Sub cf_months() Dim m As Long, cnf As String With Worksheets("Sheet1") With .Range("A1") .FormatConditions.Delete For m = 12 To 1 Step -1 cnf = StrConv(Format(DateSerial(2016, m, 1), "mmm"), vbUnicode) cnf = Join(Split(cnf, vbNullChar), Chr(92)) cnf = Chr(91) & Chr(61) & m & Chr(93) & Chr(92) & Left(cnf, Len(cnf) - 1) & Chr(59) & Chr(59) & Chr(59) .FormatConditions.Add Type:=xlExpression, Formula1:=Chr(61) & .Address(0, 0) & Chr(61) & m .FormatConditions(.FormatConditions.Count).NumberFormat = cnf Debug.Print cnf Next m End With End With End Sub 

cf_months