0

我正在尝试为客户自动分析数据。他们的系统以文本格式导出数据,包括日期。为了使日期在我的分析中可用,需要将它们从文本转换为日期。手动,我知道的唯一方法是使用文本到列功能,将其设置为不带分隔符的分隔符,然后格式化为日期(因为只是格式化为日期会更改单元格格式,但实际上并没有隐藏输入)。此外,我希望每次修改工作表时都运行此代码。(具体来说,每个季度,不精通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

子不完整。但我还需要帮助建立它。

4

2 回答 2

0

要更改日期(我假设文本格式为“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
于 2019-10-21T21:05:42.517 回答
0

如果我正确理解您的问题,您将获得实际上是文本的“数字”。虽然它们看起来像数字;他们不是。

Excel 中的日期只是数字,您是否尝试过创建一个变量说 tempHolder 和 dim as long?然后将其中一个单元格存储在该变量中并将其写入新单元格。在 B1 类型中:

=a1*b1 

这应该将值转换为数字。但我需要一个例子来玩弄。

写一个循环(假设有效),你就有了转换的方法

于 2019-10-21T21:03:56.987 回答