我试图执行一个将单元格分成3个不同部分的代码。我试图将列中的日期拆分为#34; p"并在列中插入3个不同的部分" R:T"。但是不知何故,代码只会在R列中粘贴日期,如附图所示。代码怎么了?
Range("Q4:Q65000").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.TextToColumns Destination:=Range("R4"), DataType:=xlDelimited, _
TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="-", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), _
TrailingMinusNumbers:=True
答案 0 :(得分:4)
我认为您遇到的问题是,您的代码会将日期视为长期值,而不是您所看到的格式。 为什么不使用Excel公式来处理这个问题?
列R
将为=DAY(Q4)
列S
将为=MONTH(Q4)
列T
将为=YEAR(Q4)
答案 1 :(得分:0)
这样的东西就足够了
Dim lastRow As Long
Set lastRow = Range("Q" & Rows.Count).End(xlUp).Row
For i = 4 To lastRow
Range("R" & i).Value = Mid(Range("Q" & i).Value, 1, 2)
Range("S" & i).Value = Mid(Range("Q" & i).Value, 4, 2)
Range("T" & i).Value = Mid(Range("Q" & i).Value, 7, 4)
Next i
遍历受影响的所有行,并将日期拆分为其部分。
这是因为日期始终采用
格式dd-MM-yyyy