gpt4 book ai didi

vba - VBA中从文本格式到日期格式的日期

转载 作者:行者123 更新时间:2023-12-03 00:20:51 26 4
gpt4 key购买 nike

我想将日期从文本格式更改为日期格式(自定义) dd/mm/yyyy hh:mm 。我一直在网站内阅读所有类型的类似问题,但似乎没有什么对我有用。即使我应用更改,日期仍保持文本格式。有没有办法在VBA中使用日期函数。或者一般来说,关于我如何最终使其发挥作用的任何想法。我的日期是从名为“TMS”的 Excel 工作表中查找的,它们是文本格式的。目标表是“Tracker”。日期从网站导入到“TMS”表中,因此我必须在 Excel 内自动执行格式更改。下面提供了我的代码。非常感谢!!

下面的代码是固定代码,日期格式适用,但它不会为每一行运行循环,而是只是将第一行的值复制粘贴到其他行。换句话说,它适用于第一行,但不适用于其他行!

Sub Tracker()

Sheets("TMS").Select
lastrow = Range("B" & Rows.Count).End(xlUp).Row
With Range("G2:G" & lastrow)
If Not IsEmpty(Range("G2:G" & lastrow)) Then
.value = .Parent.Evaluate("DATE(MID(" & .Address & ",7,4),MID(" & .Address & ",4,2),LEFT(" & .Address & ",2))+RIGHT(" & .Address & ",4)")
End If
End With
Sheets("Tracker").Select
lastrow = Range("B" & Rows.Count).End(xlUp).Row
With Range("AG2:AG" & lastrow)
.Formula = "=VLOOKUP(B2,TMS!B:G,6,FALSE)"
.value = .value
End With

End Sub

最佳答案

只需添加到您的 With Range("G2:G"& lastrow) 部分:

.Value = .Parent.Evaluate("DATE(MID(" & .Address & ",7,4),MID(" & .Address & ",4,2),LEFT(" & .Address & ",2))+RIGHT(" & .Address & ",4)")

这应该一步将所有字符串更改为数值:)

编辑
由于 Evaluate 不想以这种方式返回数组,因此我们只需通过 INDEX 强制它:

.Value = .Parent.Evaluate("INDEX(DATE(MID(" & .Address & ",7,4),MID(" & .Address & ",4,2),LEFT(" & .Address & ",2))+RIGHT(" & .Address & ",4),)")

关于vba - VBA中从文本格式到日期格式的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45777208/

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