[英]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.