gpt4 book ai didi

excel - 将 "dd.mm.yyyy"更改为 "mm/dd/yyyy"VBA

转载 作者:行者123 更新时间:2023-12-04 21:49:43 29 4
gpt4 key购买 nike

我知道“dd.mm.yyyy”在 Excel 中没有格式化为日期,而这个转换部分对我来说是什么。我在 .cell("C5") 中有“31.3.2019”,并希望它在同一个单元格中转换(替换它),并使用“2019 年 3 月 31 日”的新格式。我不断收到“超出范围”错误,我不确定我的错误在哪里。

以下是我尝试过的:

Sub DivestitureTemplate_ChangeDateFormat()

Application.ScreenUpdating = False

Dim rng As Range
Dim str() As String
Set rng = Range("C5:C3000")

With Worksheets("Divestiture Template")
For Each rng In Selection
str = Split(rng.Value, ".")
rng.Value = DateSerial(2000 + str(4), str(2), str(0))
Next rng
Selection.NumberFormat = "mm/dd/yyyy"

Application.ScreenUpdating = True

End With

End Sub

将 ("C5:C3000") 的格式从 2019 年 3 月 31 日更改为 2019 年 3 月 31 日——它可以是连续的,但从“C5”开始,因为这是一个自动报告,并且位于指定的标题下方。我想我一直在看这个,整天编写脚本,无缘无故地失去理智。

最佳答案

要在列中获取真实日期,请尝试:

Sub DivestitureTemplate_ChangeDateFormat()
Dim cell As Range, rng As Range, d As Date
Set rng = Worksheets("Divestiture Template").Range("C5:C3000")

For Each cell In rng
With cell
arr = Split(.Text, ".")
.Value = DateSerial(arr(2), arr(1), arr(0))
.NumberFormat = "m/dd/yyyy"
End With
Next cell
End Sub

编辑#1:
Sub DivestitureTemplate_ChangeDateFormat()
Dim cell As Range, rng As Range, d As Date
Dim arr
Set rng = Worksheets("Divestiture Template").Range("C5:C3000")

For Each cell In rng
With cell
arr = Split(.Text, ".")
.Value = DateSerial(arr(2), arr(1), arr(0))
.NumberFormat = "m/dd/yyyy"
End With
Next cell
End Sub

关于excel - 将 "dd.mm.yyyy"更改为 "mm/dd/yyyy"VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57046115/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com