VBA Excel过滤整列中的特定字符串内容并将其粘贴到另一列中

时间:2017-09-06 17:11:25

标签: excel string vba excel-vba

我有一个aprox 5000行的矩阵,看起来就像在im1上看到的那样(不是真正的矩阵)

im1

基本上我编写了一些东西,在电线/软管/类型的右侧插入3个空列,各自的名称和#34;电线,尺寸和颜色"写在列的顶部单元格中

钢丝/软管/类型列包含3种类型的信息 第一个是以数字开头的4个字符的长字符串(如3FEC或4LOP)。这是一种模式 第二个是2.5或0.50之类的数字 第三个是包含一种或两种颜色的字符串(例如GN或GN / BN)

我想要做的是在列的每个单元格中识别第一类信息并将其粘贴到" Wire",将第二类信息粘贴到"尺寸"第三个"颜色"最后删除了Wire / hose类型的列,最后看起来就像在im2上看到的那样:

im2

如果有人能指导我至少填写第一个参数,那么我可以用同样的理由来填补其余部分我真的很感激,不要说声音陈词滥调但是我很亲切在这个编码环境中新的

到目前为止我的代码看起来像这样:

Sheet3.Activate

.tribeconvo{
    font-size: 16px;
}

谢谢!

1 个答案:

答案 0 :(得分:2)

这是做到这一点的方法。

Sub ProcessData()
    Dim x As Long, y As Long
    Dim r As Range
    Dim values As Variant

    With Sheet3
        For y = 1 To 4
            If InStr(1, Cells(1, y).value, "Wire/Hose/Tube type") Then
                .Columns(y).Resize(, 3).Insert Shift:=xlToRight
                Exit For
            End If
        Next
        y = y + 3

        For Each r In .Range(.Cells(2, y), .Cells(.Rows.Count, y).End(xlUp))
            values = Split(Replace(r.value, ":", "-"), "-")
            r.Offset(0, -3).value = values(1)
            r.Offset(0, -2).value = values(2)
            r.Offset(0, -1).value = values(3)
        Next
        .Cells(1, y - 3).Resize(1, 3).value = Array("Wire", "Size", "Color")
        .Columns(y).Delete
    End With

End Sub