首页 > 解决方案 > 使用动态起点复制粘贴单元格范围

问题描述

我无法根据动态起点复制粘贴一系列单元格(起点是具有指定值的单元格下方的 1 个单元格)。

此特定范围的单元格将始终位于 AZ 列中,但该行在工作表中是动态的。但是,此单元格范围之前总是有一行上面带有特定单元格值的行,例如“此处的数据集”。

所以在一个示例表中,我需要复制 A650:Z700,并且单元格“Dataset Here”在 A649 中。

如何根据范围位于值为“Dataset Here”的单元格下方的要求复制范围?

我能够识别起始行,但我迷失了如何将其变成 Range("A650:Z700") 的动态版本。复制:

Dim StartRow As Long
    StartRow = Range("A:BA").Find("Dataset Here").Row + 1

标签: excelvba

解决方案


你好水晶和欢迎。

您可以执行以下操作。这适用于假设“此处的数据集”下方的所有单元格和列都已填充(否则可能无法正确定义复制范围)。以下示例将单元格 A6:B9 复制到单元格 F1

在此处输入图像描述

Option Explicit

Public Sub sCopyCells()

  Call sCopyCellsForWorksheet(Worksheets("Sheet1"))

End Sub

Private Sub sCopyCellsForWorksheet(ByRef ws As Worksheet)

  Dim target As Range, source As Range, destination As Range

  Set target = ws.Range("A:A").Find("Dataset Here")
  Set source = Range(target.Offset(1, 0), target.End(xlDown).End(xlToRight))
  Set destination = ws.Range("F1")

  source.Copy
  destination.PasteSpecial xlPasteAll

End Sub

推荐阅读