【问题标题】: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
      

      【讨论】:

        猜你喜欢
        • 2013-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-08
        • 1970-01-01
        • 1970-01-01
        • 2014-07-26
        相关资源
        最近更新 更多