引用命名单个单元格在另一个范围内复制粘贴

我想复制和粘贴数据集(表)的具体列与这两个function:

  • 数据不会在已知行中开始

  • 观察次数是未知的(数据的行数也是如此)

我使用find函数来获取数据的第一个和最后一个单元格的范围,但是我不知道如何在复制函数中引用它们。 以下是我想要做的一个例子:

Sub prueba_copy() Dim sht As Worksheet Dim sht3 As Worksheet Dim LastRow As Long Dim FirstRow As Range Set sht = ThisWorkbook.Worksheets(Sheet1.Name) Set sht3 = ThisWorkbook.Worksheets(Sheet3.Name) Set FirstRow = sht.Cells.Find("TIPO DE USO", searchorder:=xlByRows, LookAt:=xlPart) ' the result is range: F4 LastRow = sht.Cells.Find("*", after:=Cells(1, 2), searchorder:=xlByRows, searchdirection:=xlPrevious).Row 'the result is: 9 

FirstRowLastRow将被用来引用复制的范围。 我想将FirstRow的数据复制到FirstRow (ei F)的列和LastRow(ei 9)的行中,所以这个动作会读取范围(F4:F9).copy

 'copy paste sht.Range("FirstRow.address():Firstrow.addres().column" & LastRow).Copy sht3.Range("A1") End Sub 

我已经尝试了很多选项来引用范围没有成功。 所以,我会很感激你的帮助。

因为我是新手,所以我也希望有一个好的网页的build议来学习。

谢谢,

古斯塔沃

 Dim f As range Set f = Sheet1.Cells.Find("TIPO DE USO", searchorder:=xlByRows, LookAt:=xlPart) If Not f Is Nothing Then Sheet1.Range(f, Sheet1.Cells(Rows.Count, f.Column).End(xlUp)).Copy _ Sheet3.Range("A1") Else Msgbox "Header not found!" End If 

试试这个代码复制粘贴:

 sht.Range(Cells(FirstRow.Row, FirstRow.Column), Cells(LastRow, FirstRow.Column)).Copy sht3.Range("A1") 

通过使用工作表的对象来声明工作表variables,你唯一要做的就是把代码弄糟。 例外的是给工作表一个更有意义的名字,你不这样做。

 Dim Source As Range With Sheet1 Set Source = .Cells.Find("TIPO DE USO", searchorder:=xlByRows, LookAt:=xlPart) If Not Source Is Nothing Then .Range(Source, Source.EntireColumn.Rows(.Rows.Count).End(xlUp)).Copy Sheet3.Range("A1") End If End With