excel - 仅通过输入日期 (jj) 填写日期 (jj/mm/yyyy)
问题描述
我有 12 个月的 12 张纸,每个月的随机日期要手动输入 A 列。我们以 1 月份为例:
当我在单元格 A1 中输入数字25时,我希望单元格在 A1 中自动返回25/01/2019(!)(或 2019 年 1 月 25 日,如您所愿)。据我所知,即使使用自定义设置,Excel 自动填充功能也无法做到这一点,所以我猜:VBA?
我认为代码应该是这样的(带有更改事件):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, cell As Range
Set rng = Range("A:A")
If Not Application.Intersect(rng, Range(Target.Address)) _
Is Nothing Then
'???
'If cell entered in range is a number Then
'change value to "number" & "/01/2019"
End If
End Sub
这就是我所在的地方。我很确定这对于使用月份并输入许多日期的人来说可能是一段有用的代码。我离真相还远吗?它甚至可以吗?我知道这可能比听起来更复杂。
解决方案
尝试
If Target.value2 > 0 and Target.value2 <= 31 Then
Target.Value2 = dateSerial(year(now), month(now), Target.Value2)
End If
推荐阅读
- c# - 如何在 xamarin 表单中创建具有两种布局的页面
- c++ - 在 C++ 中使用取决于函数的大小初始化数组
- sql - 将数据从一个表迁移到另一个表
- java - 信件计数应用程序
- mongodb - 使用 mongodb 和 kafka 消费者的并发更新问题
- c - 如何执行简单的 buffer_overflow 攻击?
- tensorflow - Tensorflow/Keras - 如何暴露类别之间的关系?
- react-native - 如何在本机反应中输入这种“xxx-xxx-xxxx”格式的电话号码?
- java - 在 BitBucket 中看不到我在 IntelliJ 中的更改
- docker - Composer 没有加载我本地安装的包