繁体   English   中英

复制Range直到lastRow并粘贴到另一个工作表中

[英]Copy Range until lastRow and paste in another worksheet

我目前正在使用以下代码复制粘贴范围,但是一旦粘贴数据,它将创建一个非常大的文件,我如何修改此文件以仅复制粘贴到最后一个活动行? 还是由于其他因素导致文件变大? VB新手,任何帮助将不胜感激。

Private Sub CommandButton1_Click()
Dim WB1 As Workbook
Dim WB2 As Workbook

Set WB1 = ActiveWorkbook
Set WB2 = Workbooks.Open(WB1.Path & "\RawData.xlsm")

WB1.Sheets("CR Details").Columns("A:AW").Value = WB2.Sheets("sheet1").Columns("A:AW").Value

WB2.Close
End Sub

文件大小是使用整个列的结果。 链接涵盖了一些方法来查找一系列数据。 在您的子目录中,您可以执行以下操作:

Private Sub CommandButton1_Click()
Dim WB1 As Workbook
Dim WB2 As Workbook

Set WB1 = ActiveWorkbook
Set WB2 = Workbooks.Open(WB1.Path & "\RawData.xlsm")

'Find the last row with data
With WB1.Sheets("CR Details")
    LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
End With
WB1.Sheets("CR Details").Range("A1:AW" & LastRow).Copy
WB2.Sheets("sheet1").Range("A1").PasteSpecial xlPasteValues

WB2.Close
End Sub

您问题的简短答案是:

Private Sub CommandButton1_Click()
Dim WB1 As Workbook
Dim WB2 As Workbook
Dim LastRow As Long

Set WB1 = ActiveWorkbook
Set WB2 = Workbooks.Open(WB1.Path & "\RawData.xlsm")

With WB1.Sheets("CR Details")
    'Find the last cell's row with data in any column
    '(You can also use ".Cells(Rows.Count, 1).End(xlUp).row")
    LastRow = .Range("A:AW").Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).row
    'Copy the values
    WB2.Sheets("sheet1").Range("A1", "AW" & LastRow) = .Range("A1", "AW" & LastRow).Value
End With

WB2.Close
End Sub

更详细的解释:

查找最后使用的行的一个非常常见的代码段是使用:

(将使用列A查找最后使用的行)

Dim LastRow as Long

With ThisWorkbook.Sheets("CR Details")
    LastRow = .Cells(Rows.Count, 1).End(xlUp).row 
End With

将“ 1”更改为要查找的列号。

要在range("A:AW")任何列中找到最后使用的单元格的行,那么您将需要以下内容:

Dim LastRow as Long

With ThisWorkbook.Sheets("CR Details").Range("A:AW")
    LastRow = .Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).row
End With

而已。 Ron de Buin对此进行了详尽的解释。 答案也可以在Stack Overflow上找到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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