爲了簡化數據輸入,我允許用戶在沒有「/」的情況下輸入日期「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]。 –