【问题标题】:VBA Insert row instead of copyVBA 插入行而不是复制
【发布时间】:2023-01-14 17:25:36
【问题描述】:
我想在爬行之前先跑。我拼凑了这段代码,但我需要它在第 24 行插入,而不是复制。
Dim sh4 As Worksheet, sh5 As Worksheet, lr As Long, rng As Range
Set sh4 = Sheets("est")
Set sh5 = Sheets("gaf letter")
lr = sh4.Cells(Rows.Count, 1).End(xlUp).Row
Set rng = sh4.Range("a1:a" & lr)
rng.EntireRow.Copy sh5.Rows("24:24")
我曾尝试使用 .Insert,但它出现了对象范围的方法插入失败。如果我只想复制,代码工作正常,但我需要它来插入和移动它下面的剩余行,向下。
【问题讨论】:
标签:
excel
vba
insert
range
【解决方案1】:
Option Explicit ' declare all variables
Sub InsertRows()
Dim sh4 As Worksheet, sh5 As Worksheet
Dim lr As Long, rng As Range
Set sh4 = Sheets("est")
Set sh5 = Sheets("gaf letter")
Application.ScreenUpdating = False
With sh4
lr = .Cells(.Rows.Count, 1).End(xlUp).Row
Set rng = .Rows("1:" & lr)
rng.Copy
sh5.Rows(24).Insert shift:=xlDown
End With
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub
【解决方案2】:
去吧
With Sheets("est")
.Range("A1", .Cells(.rows.Count, 1).End(xlUp)).EntireRow.Copy
Sheets("gaf letter").rows(24).Insert shift:=xlDown
Application.CutCopyMode = False
End With