下面是我不包括數據:列數據移動到正確的用Excel VBA
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
下面是我不包括數據:列數據移動到正確的用Excel VBA
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
試試這個:
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
我有列upto AE.Is有可能沒有削減和插入每列 – user569125 2012-02-08 14:30:05
@ user569125:我編輯了我的答案與另一個嘗試,但我真的認爲這不會比第一個更快 – JMax 2012-02-08 14:42:54
你是什麼意思通過「是否有可能沒有剪切和插入每一列」? Jmax的第一種方法不會剪切並插入每一列。它會剪切並粘貼一列,並將所有其他列移動到右側。你試過了嗎? – Reafidy 2012-02-08 22:57:17
so before B will C.
我不得不重讀多次才能真正理解你想說的話。我可能還沒有弄清楚它的正確性。 :)你是說這個嗎?請確認。
「那麼B就目前到位的C爲C向右移動1個地方,當你在B位置插入F」
如果是,那麼你需要的是剛剛從J最大的代碼的前兩行
Sub Sample()
Columns("F:F").Cut
Columns("B:B").Insert Shift:=xlToRight
End Sub
這真的很有幫助! – henry 2014-05-08 14:51:51
您是否嘗試過手動記錄宏並查看代碼? – assylias 2012-02-08 14:11:37