为了简化数据输入,我允许用户在没有“/”的情况下输入日期“ddmmyyyy”,例如“12032017”。输入之后,我想更新目标单元格的值为“dd/mm/yyyy”,例如“12/03/2017”。
开始时,目标单元格的格式设置为“常规”,但一旦计算日期值,单元格的格式会自动更改为“dd/m/yyyy”。 我试图使用通用和日期格式。下面是VBA代码将字符串值转换为vba中的日期值
If Not Intersect(Target, Range("D11:D510")) Is Nothing Then
If Not (Target.Value = "") Then
Application.EnableEvents = False ' very important
Target.Value = Left(Target.Value, 2) & "/" & Mid(Target.Value, 3, 2) &
"/" & Right(Target.Value, 4)
Application.EnableEvents = True 'very important
End If
End If
'12032017'不是一个有效的识别日期Excel将自动更改,所以只需更改格式将不起作用。您需要在Worksheet_Change事件中使用vba,解析字符串并返回日期,然后才能正确格式化。 –
@ScottCraner,谢谢你的回复。是的,我使用的是宏,下面是代码; 如果没有相交(目标,范围( “D11:D510”))是没有那么 如果不是(Target.Value = “”)然后 Application.EnableEvents =假“非常重要 Target.Value =左(目标。 Value,2)&“/”&Mid(Target.Value,3,2)& “/”&Right(Target.Value,4) Application.EnableEvents = True'非常重要 End If End If – Ehsan
Please将代码放在原始帖子中,而不是在评论中使用[edit]。 –