Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/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_Vba - Fatal编程技术网

Excel 将值从一列移动到另一列

Excel 将值从一列移动到另一列,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”的ColumnC是

是否可以使用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”的ColumnC是ColumnB的一部分。在我将其格式化为文本到列后,它将被放置在ColumnC中。

此外,D列中的值应位于C列。

以下代码将在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 

Range(“B2”)。Insert Shift:=xlToRight
将在B2中插入一个单元格,并将所有内容沿一个单元格移动。因此问题是,在导入源数据时,源数据中有一列被拆分为B列和C列?@jsheeran,是的,在导入数据后,它被拆分为B列和C列。。并且,其他值被移动到下一列。在导入之前或在文本到列之前更正数据可能更容易。想想看,这就是@jSheeran遇到的问题之一。一个选项可能是使用公式将B和C连接在一起,例如
=B2&C2
。然后您可以复制它并将其作为值粘贴到B列中,然后删除C。