Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 复制范围直到最后一行并粘贴到另一个工作表中_Excel_Vba - Fatal编程技术网

Excel 复制范围直到最后一行并粘贴到另一个工作表中

Excel 复制范围直到最后一行并粘贴到另一个工作表中,excel,vba,Excel,Vba,我目前正在使用下面的代码复制粘贴范围,但一旦粘贴数据,它会创建一个非常大的文件,我如何修改它以仅复制粘贴到最后一个活动行?还是因为其他因素,文件变得越来越大? VB新手,如有任何帮助,将不胜感激。 Private Sub CommandButton1_Click() Dim WB1 As Workbook Dim WB2 As Workbook Set WB1 = ActiveWorkbook Set WB2 = Workbooks.Open(WB1.Path & "\RawData.

我目前正在使用下面的代码复制粘贴范围,但一旦粘贴数据,它会创建一个非常大的文件,我如何修改它以仅复制粘贴到最后一个活动行?还是因为其他因素,文件变得越来越大? 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

文件大小是使用整个列的结果。这涵盖了一些查找一系列数据结尾的方法。在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

文件大小是使用整个列的结果。这涵盖了一些查找一系列数据结尾的方法。在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查找上次使用的行)

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

要在
范围(“A:AW”)
中的任何列中查找最后使用的单元格行,则需要如下内容:

Dim LastRow as Long

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

就这样。有一个很好的页面来解释这一点。答案也可以在上找到。

您的问题的简短答案是:

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查找上次使用的行)

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

要在
范围(“A:AW”)
中的任何列中查找最后使用的单元格行,则需要如下内容:

Dim LastRow as Long

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

就这样。有一个很好的页面来解释这一点。答案也可以在上找到。

这只是粘贴一行?代码必须修改,因为数据正在从WB2.sheet1复制到WB1.CR详细信息。您是对的,它有一个问题。我已经更正了。这只是粘贴一行?代码必须修改,因为数据正在从WB2.sheet1复制到WB1.CR详细信息。您是对的,它有一个问题。我已经改正了。