分离复制的单元格

时间:2017-11-21 13:13:00

标签: excel vba excel-vba

enter image description here

我试图执行一个将单元格分成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

2 个答案:

答案 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