簡體   English   中英

VBA 清理列

[英]VBA Cleaning up Columns

我有一個我寫的宏,它附加了一些數據。

到目前為止,它會吐出從 A 列填充到 AY (A:AY) 的數據

我需要刪除這些列中的大部分及其數據,並重復/復制和粘貼兩列。

我的目標:(AGCCDGI-AY)

我編寫了這段代碼,並且能夠從中生成(ACDGI-AY):

Range("B2").Select
Selection.EntireColumn.Delete
Range("D2:E2").Select
Selection.EntireColumn.Delete
Range("E2").Select
Selection.EntireColumn.Delete
Range("F2:AT2").Select
Selection.EntireColumn.Delete
Range("G2").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.EntireColumn.Delete

注意* 從第 2 行開始的范圍無關緊要。 對於生成的數據,第 1 行無論如何都是空白的。

如果有一種方法可以使我在這里的內容更有效並在正確的位置獲得兩個重復的列,將不勝感激。

如果您同時使用 select 所有范圍,則無需考慮下一個范圍的 position 的變化。 通過指定列范圍,不再需要“整個列”,但如果需要,可以在那里。

至於兩個重復的列,只需將它們復制到正確的位置即可。 我已經在下一行指定了要復制的內容和給定的目的地。

下面的代碼似乎提供了您所要求的。

Sub mysub2()

    Range("B:B,E:F,H:H,J:AX,AZ:XFD").Delete

    Columns("D:D").Copy
        Columns("B:B").Insert Shift:=xlToRight
    Columns("C:C").Copy
        Columns("C:C").Insert Shift:=xlToRight
    
    Application.CutCopyMode = False
    
End Sub

結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM