我目前在尝试将包含时间和日期、分钟和秒信息的列重新格式化为时间和日期格式时遇到问题,然后我可以使用过滤器将最旧到最新等重新排序。< /p>
这是单元格条目的示例
24/03/2021 10:30:35:540
现在,如果我使用宏记录器来记录我选择所需的列并使用文本到列功能>固定宽度,将列分隔线设为 16 并选择常规作为列数据格式,我最终会得到单元格条目如下所示,它适用于过滤。
24/03/2021 10:30:00 AM
一旦停止录制宏并查看我在 VBA 中得到的信息:
Columns("P:P").Select
Selection.TextToColumns Destination:=Range("P1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(16, 1)), TrailingMinusNumbers:=True
我的问题是,当我尝试将此代码作为宏运行时,它会影响日期,请参阅下面的说明,它似乎只影响可以将格式交换为美国化的日期?
例如原始单元格包含 2021 年 3 月 7 日
07/03/2021 05:46:45:328
当手动使用文本到列时,它可以,但是当使用 VBA 运行上面的代码时,日期和月份转置,下面是分成两列的结果,3 和 7 交换了,现在日期是 7 月 3 日
3/07/2021 5:46 :45:328
如果我不需要,我真的不需要使用文本到列功能,但是如果没有它,我很难将单元格转换为日期和时间格式。
例如,也尝试过 =LEFT(P2,16)
,然后将列重新粘贴为值,然后尝试使用格式单元格 > 自定义 > d/mm/yyyy h:mm
,但这不起作用。
如果有人有任何我希望听到的其他建议?希望能够通过 VBA 运行某些东西,作为更大的宏集的一部分,重点是能够通过 VBA 完成它。
答案 0 :(得分:0)
将 Array(0, 1)
的 Array(1,4)
更改为 DMY
以获取 Columns("P:P").TextToColumns Destination:=Range("P1"), _
DataType:=xlFixedWidth, FieldInfo:=Array(Array(1,4), Array(16, 1)), _
TrailingMinusNumbers:=True
如果您使用以下设置录制宏,您将获得以上代码。
您也不需要 SELECT 列。试试这个
functions:
stream-function:
handler: src/stream-handler/stream.handler
memorySize: 1024 #in MB, also control CPU throughput
timeout: 31 #in seconds, match with downstream to avoid concurrent request
events:
- stream:
type: kinesis
arn:
Fn::GetAtt: [HagoStream, Arn]
batchSize: 1
parallelizationFactor: 2
Id: "my cloud watch rule name"
InputTransformer: {
InputTemplate: '{"uniqueId": "96c80428-14fe-c8d0-f6e3-639384992391"}',
InputPathsMap: {
id: '$.uniqueId'
}
}
maximumRetryAttempts: 2
destinations:
onFailure:
arn:
Fn::GetAtt: [HagoFailedQueue, Arn]
type: sqs
environment:
DLQ_URL:
Ref: HagoDlqQueue
注意:不幸的是,这不是 100% 可靠的。 VBA“非常以美国为中心”:D
答案 1 :(得分:0)
考虑使用 Power Query 解决方案(并且,如果您的数据最初来自 CSV 文件,则可以将该算法合并并用作导入过程的一部分)。
:
冒号处拆分.
小数作为分隔符English(European)
和 datetime
之类的内容
M 代码
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Split Column by Delimiter" = Table.SplitColumn(Source, "Timestamp",
Splitter.SplitTextByEachDelimiter({":"}, QuoteStyle.Csv, true), {"Timestamp.1", "Timestamp.2"}),
#"Merged Columns" = Table.CombineColumns(
Table.TransformColumnTypes(
#"Split Column by Delimiter", {{"Timestamp.2", type text}}, "en-US"),
{"Timestamp.1", "Timestamp.2"},Combiner.CombineTextByDelimiter(".", QuoteStyle.None),"Timestamp"),
#"Changed Type with Locale" = Table.TransformColumnTypes(#"Merged Columns", {{"Timestamp", type datetime}}, "en-150")
in
#"Changed Type with Locale"