Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 分离单元格中的数据并复制到另一列_Excel_Date_Vba - Fatal编程技术网

Excel 分离单元格中的数据并复制到另一列

Excel 分离单元格中的数据并复制到另一列,excel,date,vba,Excel,Date,Vba,我有一个名为Description的列,其中包含费用说明和费用日期。我从中获取它的文件没有正确的开支日期 我想分离数据,将日期复制到费用日期列,并将剩余的说明粘贴到说明列 我心目中的逻辑是复制数据并粘贴到一个隐藏列,然后使用此代码进行分离 Sub text2column() selection.TextToColumns Destination:=Range("S1"), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 3), A

我有一个名为Description的列,其中包含费用说明和费用日期。我从中获取它的文件没有正确的开支日期

我想分离数据,将日期复制到费用日期列,并将剩余的说明粘贴到说明

我心目中的逻辑是复制数据并粘贴到一个隐藏列,然后使用此代码进行分离

Sub text2column()

selection.TextToColumns Destination:=Range("S1"), DataType:=xlFixedWidth, _
    FieldInfo:=Array(Array(0, 3), Array(6, 1)), TrailingMinusNumbers:=True
但是,我需要从具有资源名称的行(例如Name1、Name2、Name3等)开始粘贴/覆盖,保留不可用的资源,并且不接触不可用的资源的描述


我喜欢您基于当前属性的流程。我有一些样板框架,用于处理中选定的单元格


我增加了骑自行车穿过街道的功能。这将允许您在当前选择的不连续单元格范围内循环(例如A2:A10、A15:A20)。如果您选择了单个单元格块,那么它的属性为1,因此不会造成任何损害。

非常感谢Jeeped提供了这段精彩的代码。 我解决了如何跳过更新具有“notavailable”值的行的问题,并得出了这段代码

Sub splitDescription()
    Dim tmp As String, rng As Range

    With selection
        For Each rng In .Areas
            With rng
                tmp = Cells(.Cells(1).Row, 16383).Address
                .TextToColumns Destination:=.Parent.Range(tmp), DataType:=xlFixedWidth, _
                               FieldInfo:=Array(Array(0, 3), Array(6, 1))
                .Offset(0, -2) = .Parent.Range(tmp).Resize(.Rows.Count, 1).Value
                .Cells = .Parent.Range(tmp).Resize(.Rows.Count, 1).Offset(0, 1).Value
                .Parent.Range(tmp).Resize(1, 2).EntireColumn.Clear
            End With
        Next rng
    End With

    Range("I4").Select
End Sub

Sub findresource()

    Range("C6").Select
    Do While ActiveCell.Value = "Not Available"
    selection.Offset(1, 0).Select
    Loop

    selection.Offset(0, 5).Select
    Range(selection, selection.End(xlDown)).Select

    Call splitDescription
End Sub

十月份是不是102816homeoffice?这将使基于固定宽度的文本列混乱。不,应该是2016年1月28日,数据是012816 Home officeSorry,因为它太迟钝。我想问的是,在2016年12月25日,家庭办公室前面的5位数字是否曾经变成6位数字,例如,
122516家庭办公室
。因此,在2016年1月1日的情况下,它们是否变为4位数?e、 g.
1116家庭办公室
。不。数字固定为6位。2016年1月1日将是010116总部感谢您的这辆吉普车。我将尝试使用您的代码,并将就此向您提供反馈。再次谢谢你道歉。但我还不能给出反馈。我仍在解决如何告诉程序保留不可用的资源。我还将张贴代码,一旦我解决了它。谢谢:)
Sub splitDescription()
    Dim tmp As String, rng As Range

    With selection
        For Each rng In .Areas
            With rng
                tmp = Cells(.Cells(1).Row, 16383).Address
                .TextToColumns Destination:=.Parent.Range(tmp), DataType:=xlFixedWidth, _
                               FieldInfo:=Array(Array(0, 3), Array(6, 1))
                .Offset(0, -2) = .Parent.Range(tmp).Resize(.Rows.Count, 1).Value
                .Cells = .Parent.Range(tmp).Resize(.Rows.Count, 1).Offset(0, 1).Value
                .Parent.Range(tmp).Resize(1, 2).EntireColumn.Clear
            End With
        Next rng
    End With

    Range("I4").Select
End Sub

Sub findresource()

    Range("C6").Select
    Do While ActiveCell.Value = "Not Available"
    selection.Offset(1, 0).Select
    Loop

    selection.Offset(0, 5).Select
    Range(selection, selection.End(xlDown)).Select

    Call splitDescription
End Sub