繁体   English   中英

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

[英]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

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

我尝试了许多选项来引用范围,但均未成功。 因此,我非常感谢您的帮助。

由于这是我的新手,我也很感谢任何有关学习良好网页的建议。

谢谢,

古斯塔沃

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM