我的VBA宏中的日期格式有问题。 我正在尝试创建宏来分析从类似这样的机器人那里获取的数据日志。
Counter_Red,"04/03/2019 12:54:19",3,1,43528537722.5347
在开始时,我需要将数据分成单独的列,然后才能分析它们。 当我使用excel工具将文本拆分为列时,它可以正常工作,并且以day.month.year格式获得预期结果。
04.3.2019 12:54:19
我创建了宏来为我做拆分。
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 4), Array(3, 1), Array(4, 1), Array(5, 1)), _
TrailingMinusNumbers:=True
但是当我使用VBA宏来执行此操作时,它始终会更改日期和月份,因此生成的格式为month.day.year。
3.4.2019 12:54:19
有人可以建议我如何解决它,以便我的宏为我提供正确的日期格式day.month.year吗?
答案 0 :(得分:0)
J,他们是对的(上方)。就个人而言,如果数据量很小,我将使用 Split 函数放置在数组中,然后从那里修改并输出。确实,工作表函数将始终比使用数组(尤其是动态数组)更快,消耗更少的资源,但是也许:
Option Explicit
Function MakeDates()
Dim cellData As String
Dim arr_data() As String
Dim intArr As Integer
cellData = ActiveCell.Value
arr_data = Split(cellData, ",")
For intArr = 0 To UBound(arr_data) - 1
'getting rid of double-quotes
arr_data(intArr) = Replace(arr_data(intArr), """", "")
'formatting date if applicable
If IsDate(arr_data(intArr)) Then: _
arr_data(intArr) = Format(arr_data(intArr), "dd-m-yyyy")
'placing data on Sheet
ActiveCell.Offset(0, intArr).Value = arr_data(intArr)
Next
End Function