将值移到vba中的正确列

时间:2018-10-22 10:45:21

标签: excel vba excel-vba

是否可以使用VBA将值从ColumnC移到ColumnB,从ColumnD移到ColumnC等?我的问题是,在Excel中导入文本文件并将其格式化为文本后,可以使用列值。某些数据放置位置不正确。例如,

ColA | ColB | ColC | ColD
1    | Sam1 | ABC  | 111
2    | Sam2 | DEF  | 222
3    | Sam3 | 101  | 333
4    | Sam4 | ABC  | 444

在此示例中,值为“ ABC”和“ DEF”的ColC是ColB的一部分。但是,在将其格式化为文本到列之后,将其放置在ColC中。来自ColD的值应该在ColC中。在VBA中可以做到吗?如果是,您能给我个方法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

下面的代码在值是数字时将在col3中插入一个空白单元格,然后将col2和col3中的值组合在一起,然后删除col3。

Dim ws As Worksheet, lRow As Long, i As Long

Set ws = ThisWorkbook.ActiveSheet
lRow = ws.Cells(Rows.Count, 1).End(xlUp).Row

With ws
    For x = 1 To lRow
        If IsNumeric(.Cells(x, 3).Value) Then
            .Cells(x, 3).Insert Shift:=xlToRight
        End If

        .Cells(x, 2).Value = .Cells(x, 2).Value & " " & .Cells(x, 3).Value
    Next x

    .Columns(3).Delete
End With
End Sub