excel - 每当更改工作表时,我将如何编写将表格的列从文本转换为日期的 VBA 代码?
问题描述
我正在尝试为客户自动分析数据。他们的系统以文本格式导出数据,包括日期。为了使日期在我的分析中可用,需要将它们从文本转换为日期。手动,我知道的唯一方法是使用文本到列功能,将其设置为不带分隔符的分隔符,然后格式化为日期(因为只是格式化为日期会更改单元格格式,但实际上并没有隐藏输入)。此外,我希望每次修改工作表时都运行此代码。(具体来说,每个季度,不精通excel的用户将新数据复制粘贴到旧数据下面,表格列需要再次转换)。我的数据已经格式化为表格,所以我可以引用“Table2[Date Submitted]”来到达整个数据列,
我对VBA非常缺乏经验,只有基本知识。我一直试图在没有运气的情况下将文本重新创建到 sub 列。
Sub ConvertDates()
'
' ConvertDates Macro
' Converts text dates to usable excel dates MM/DD/YYYY
'
' Keyboard Shortcut: Ctrl+Shift+D
'
Worksheets(3).Range("Table2[Date Submitted]").TextToColumns Destination:=Range("B9"), DataType:=xlDelimited,
TextQualifier:=xlNone, ConsecutiveDelimiter:=True, Tab:=False, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, _
3)
End Sub
子不完整。但我还需要帮助建立它。
解决方案
要更改日期(我假设文本格式为“MM/DD/YYYY”),请尝试以下操作:
Sub ChangeDateFormat()
Dim rng As Range
With Sheet1 'Change to your referenced sheet's CodeName
Set rng = .Range("Table2[Date Submitted]")
rng.TextToColumns Destination:=rng, DataType:=xlFixedWidth, FieldInfo:=Array(0, xlMDYFormat)
rng.NumberFormat = "MM/DD/YYY"
End With
End Sub
推荐阅读
- java - 如何使用 docker-java 获取容器的主机名?
- angular - 如何在 Angular 指令中选择具有特定类的元素的子元素?
- python - 从分组的熊猫系列中创建晶须图
- flutter - 有条件地向图像传递参数
- flutter - 无法检查用户帐户是否存在?
- fortran - 在fortran中打印和保存矩阵
- python - Django Rest Framework:在多部分/表单数据请求中序列化数组
- matplotlib - 如何在seaborn中制作一个带有连接线的条形图,指示从一个时间段到下一个时间段的百分比变化?
- node.js - npm install => 找不到“节点”的类型定义文件
- android - Recyclerview中的Android Index out of Bound错误