[英]Reference named single cell ranges in another range to copy-paste
我想使用以下两个功能复制和粘贴数据集(表)的特定列:
数据不在已知行中开始
观察数未知(数据行数也未知)
我使用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
FirstRow
和LastRow
将用于引用要复制的范围。 我想从数据复制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
我尝试了许多选项来引用范围,但均未成功。 因此,我非常感谢您的帮助。
由于这是我的新手,我也很感谢任何有关学习良好网页的建议。
谢谢,
古斯塔沃
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")
使用工作表的对象声明工作表变量的唯一操作是使代码混乱。 例外是给工作表一个更有意义的名称,而您却没有这样做。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.