簡體   English   中英

根據活動行/秒插入單元格

[英]Insert Cells based on Active Row/s

我這里有一些代碼:

Sub ShoveActiveRight()

Range("A" & (ActiveCell.Row)).Select
ActiveCell.Columns(2).Insert Shift:=xlToRight
ActiveCell.Columns(5).Insert Shift:=xlToRight

End Sub`

這會將用戶送回 A 列,然后將 B 列中的所有內容向右推。 然后對右側 E 列中的所有內容執行相同的操作。

我需要這個完全相同的東西,除了我需要能夠 select 一系列單元格,以便它對范圍內的每一行執行此操作。

IE 如果我 select 單元格 A7、B7 向右移動,留下空白,E7 向右移動留下空白,我的數據的所有 rest 適當移動 1,然后向右移動 2。 如果我 select 單元格 A7:A9 然后我需要 B7:B9 向右移動等。

希望這是有道理的。 感謝您提供的任何幫助。

您需要使用Selection來獲取所選范圍,而不僅僅是活動單元格(始終是單個單元格)。 並使用Range.Offset 屬性從選擇中相對移動。

Sub ShoveActiveRangeRight()
    
    With Selection.Offset(ColumnOffset:=1 - Selection.Column) ' this moves to column A of the selected range
        .Offset(ColumnOffset:=1).Insert Shift:=xlToRight ' this moves from column a 1 right and inserts
        .Offset(ColumnOffset:=4).Insert Shift:=xlToRight ' this moves from column a 4 right and inserts
    End With

End Sub

或者,如果以下內容對您來說更易讀(它完全一樣)

Sub ShoveActiveRangeRight()
    Dim ColumnAOfSelectedRange As Range
    Set ColumnAOfSelectedRange = Selection.Offset(ColumnOffset:=1 - Selection.Column)

    ColumnAOfSelectedRange.Offset(ColumnOffset:=1).Insert Shift:=xlToRight
    ColumnAOfSelectedRange.Offset(ColumnOffset:=4).Insert Shift:=xlToRight
End Sub

暫無
暫無

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

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