excel - VBA 宏日期格式
问题描述
我的 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 宏来执行此操作时,它总是会更改日期和月份,因此生成的格式是月.日.年。
3.4.2019 12:54:19
谁能建议我如何解决它,以便我的宏会给我正确的日期格式 day.month.year?
解决方案
J,他们是对的(上图)。就个人而言,如果是少量数据,我会使用Split函数放置在一个Array中,然后从那里修改并输出。确实,工作表函数总是比使用数组(尤其是动态数组)更快,并且消耗更少的资源,但也许:
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
推荐阅读
- tensorflow - 将 .h5 转换为 .tflite 会降低我的模型预测精度
- string - 在 PostgreSQL 11.0 中替换多个字符串的逗号分隔值中的字符串
- android-security - App Rejected with message 您的应用程序包含 Intent Redirection 问题
- javascript - Ramda 删除嵌套的空值
- avaudioplayer - M1 构建应用程序中的 Voip 语音通话不起作用
- wordpress - fontawesome 图标包在没有 pro 的情况下非法使用?
- react-native - 如何将图标放入svg圆圈?
- algorithm - 将多属性项目分组到属性桶,以便桶大小相同
- asp.net-mvc-5 - Azure AD B2C 要求用户在用户关闭并重新打开 Internet Explorer 10 浏览器后再次登录 - Chrome 运行良好
- android - 错误:不兼容的类型:对象无法转换为 LocalDate