Excel 将值从一列移动到另一列
是否可以使用VBA将值从ColumnC移动到ColumnB,从ColumnD移动到ColumnC,等等 从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是
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。