根据 excel 中的数字显示月份名称
Show name of month according to a number in excel
我想知道是否有一种方法可以将单元格容器的内容显示为整数 (1-12) 作为月份名称 (Jan-Dec)。如果我这样做:
With Cells("A1")
.NumberFormatLocal = "MMM"
.Value = 5
End With
Excel 将值 5 读取为 1900 年 1 月 5 日,因此 returns 1 月,而我想要的是 5 月。
问题是我不想在单元格 A1 中写日期,而只想写一个整数。当单元格 A1 按值复制到另一个单元格或读取时,我希望值 copied/read 是 5,而不是 42129,就好像它是 2015 年 5 月 5 日。所以转换不是我想要的。
是否有任何自定义格式代码和其他技术可以帮助将值 1-12 显示为 Jan-Dec?感谢您的帮助!
如果绕过日期和数字规则是关键任务,那么请编写 12 条条件格式规则;每个 number/month 名称从 1 到 12 一个,并为每个 'literal' 拼写缩写月份的自定义格式掩码。
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
我想知道是否有一种方法可以将单元格容器的内容显示为整数 (1-12) 作为月份名称 (Jan-Dec)。如果我这样做:
With Cells("A1")
.NumberFormatLocal = "MMM"
.Value = 5
End With
Excel 将值 5 读取为 1900 年 1 月 5 日,因此 returns 1 月,而我想要的是 5 月。
问题是我不想在单元格 A1 中写日期,而只想写一个整数。当单元格 A1 按值复制到另一个单元格或读取时,我希望值 copied/read 是 5,而不是 42129,就好像它是 2015 年 5 月 5 日。所以转换不是我想要的。
是否有任何自定义格式代码和其他技术可以帮助将值 1-12 显示为 Jan-Dec?感谢您的帮助!
如果绕过日期和数字规则是关键任务,那么请编写 12 条条件格式规则;每个 number/month 名称从 1 到 12 一个,并为每个 'literal' 拼写缩写月份的自定义格式掩码。
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