首页 > 解决方案 > 复制范围重复偏移

问题描述

我试图复制在 VBA 中重复多次的范围(行),我知道起始单元格的名称和范围的大小。

Sub test()
  Dim LastRow As Long, x As Long, a As Long, b As Long
  a = Sheets("sd").Cells(Rows.Count, 1).End(xlUp).Row
  For x = 1 To a
     If Worksheets("sd").Cells(x, 2) = "58117552" Then
      Sheets("sd").Range(Cells(x, 2), Cells(x, 2).Offset(13, 0)).entireRows.Copy
      Sheets("sheet1").Activate
      Sheets("sheet1").Cells(1, 1).Select
      Sheets("sheet1").Paste
      Sheets("sheet1").Activate
    End If
  Next
End Sub

显然这段代码不起作用,但我不知道选择这个范围的正确方法

感谢帮助

标签: excelvbaoffset

解决方案


该 offset(13) 有点令人困惑,但这是您删除了选择的代码。

Sub test()
    Dim a As Long
    Dim sh As Worksheet, ws As Worksheet

    Set sh = Sheets("sd")
    Set ws = Sheets("Sheet1")

    With sh
        a = .Cells(.Rows.Count, 2).End(xlUp).Row
        For x = 1 To a
            If .Cells(x, 2) = "58117552" Then
                .Cells(x, 2).Offset(13, 0).EntireRow.Copy ws.Cells(ws.Rows.Count, "A").End(xlUp).Offset(1)
            End If
        Next x
    End With

End Sub

推荐阅读