excel - 将单元格和格式填入日期 -> 日期显示错误
问题描述
我已经用不同的日期填充了许多单元格。例子:
- 01.01.2020
- 01.02.2020
- 01.03.2020
- 01.04.2020
- 01.05.2020
- 等等..(每个月一个条目)
用 vba 宏填充这些单元格后,我想将格式更改为简短的月份描述(“Jan”、“Feb”、“Mar”等)
所以我用vba把格式改成了“MMM”,但是格式对单元格没有影响。我必须用“F2”进入单元格按回车,然后单元格将其格式更改为“一月,二月等”。
如何确保更改格式后直接更改单元格值?
解决方案
您的单元格可能不包含日期,而是包含看起来像日期的字符串。将单元格格式化为包含字符串的日期不会自动将内容转换为日期。由于单元格的内容与数字格式不匹配,因此格式将被忽略。
如果您输入单元格,它在 Excel 中看起来就像您正在编辑内容一样。离开单元格时,Excel 会尝试理解您输入的内容。由于单元格格式设置为日期格式,Excel 假定字符串01.01.2020
是日期并将其转换为日期。之后,可以应用数字格式,单元格显示为“Jan”。
因此,您可能必须通过编写真实日期来更改填充单元格的宏。
Dim d As Date, row As Long
d = DateSerial(2020, 1, 1)
For row = 1 To 12
With ActiveSheet.Cells(row, 1)
.Value = d
.NumberFormat = "MMM"
End With
d = DateAdd("m", 1, d)
Next
顺便说一句:要检查单元格是否包含字符串、日期或数字,请在即时窗口中键入:
? vartype(activecell.Value)
5
= 数字,7
= 日期,8
= 字符串
推荐阅读
- cname - 将 DNS CNAME 从子域映射到路径
- python - 检索列表中 NaN 的索引
- python - (pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query') [SQL: u'SELECT 1']
- android - 制作侧栏后程序总是停止
- linux - 读取子文件夹中的特定行并计算平均值
- javascript - 如何根据从另一个 div 中的选择显示 div 值?
- jquery - 左屏幕滑块上的固定按钮
- c# - MVVMLight+MvvmDialogs 找到的程序集的清单定义与程序集引用不匹配
- tensorflow-serving - 我可以自定义 TensorFlow Serving 吗?
- c# - DateTime.today() 在管理员中的运行方式不同