以下是我的excl数据:
A B c .... F G
1 test vb1 testing1 open
2 test1 vb2 testing1 close
2 test2 vb3 testing1
4 test3 vb4 testing1
我想将F列数据移动到B列并将B列数据移到右边,所以在B之前将是C。
如何使用Excel VBA编程来完成此操作。
谢谢,
Chaitu
答案 0 :(得分:8)
试试这个:
Option Explicit
Sub MoveColumns()
With ActiveSheet
.Columns("F:F").Cut
.Columns("B:B").Insert Shift:=xlToRight
.Columns("C:C").Cut
.Columns("E:E").Insert Shift:=xlToRight
End With
Application.CutCopyMode = False
End Sub
要使用它:
然后,您可以从Excel执行代码:工具>宏...>宏...
[编辑]另一个没有复制粘贴的尝试
Option Explicit
Sub copyWithArray()
Dim lLastrow As Long
Dim aValues As Variant
With ActiveSheet
lLastrow = .Cells(.Rows.Count, "AE").Row
'store data from the column F
aValues = .Range("F1:F" & lLastrow).Value
'"move" data a column further
.Range("C1:AE" & lLastrow).Value = .Range("B1:AD" & lLastrow).Value
'copy data from column C to column B
.Range("B1:B" & lLastrow).Value = .Range("C1:C" & lLastrow).Value
'restore data copied from column F to column B
.Range("B1:B" & lLastrow).Value = aValues
End With
End Sub
答案 1 :(得分:1)
所以在B之前将是C。
我必须多次阅读才能真正理解你想说的话。我可能还没有弄清楚它。 :)你这么说吗?请确认。
“所以B现在将代替C,因为当你插入F代替B时,C向右移动1个位置”
如果是,那么您只需要Jmax代码中的前两行
Sub Sample()
Columns("F:F").Cut
Columns("B:B").Insert Shift:=xlToRight
End Sub