0

复制和粘贴单元格范围,但仅在最后一行之后将值粘贴到新工作簿。我的复制工作表数据范围从 o3 开始到 r100。数据会改变。我想开始粘贴值的新工作簿从单元格 m13 开始。通过单击按钮,我想在空行下提取新数据。

我研究了可以复制并粘贴到不同工作簿或复制到最后一行的代码。但不是两者兼而有之。

Sub xtrnsf_to_other_wrkbook()

'Find the last used row in both sheets and copy and paste data below existing data.

Dim wsCopy As Worksheet
Dim wsDest As Worksheet
Dim lCopyLastRow As Long
Dim lDestLastRow As Long

  'Set variables for copy and destination sheets

  Set wsCopy = Workbooks("LP sort2.xlsm").Worksheets("Chalks")
  Set wsDest = Workbooks("PC.xlsm").Worksheets("Planner's Checklist")

  '1. Find last used row in the copy range based on data in column A

  lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "O").End(xlUp).Row

  '2. Find first blank row in the destination range based on data in column A

  'Offset property moves down 1 row
  lDestLastRow = wsDest.Cells(wsDest.Rows.Count, "M").End(xlUp).Offset(2).Row

  '3. Copy & Paste Data  
     wsCopy.Range("O3:R).Copy _
       wsDest.Range("M" & lDestLastRow)


End Sub

我的复制工作表数据范围从 O3 开始到 r100。数据会改变。我想开始粘贴值的新工作簿从单元格 M13 开始。通过单击按钮,我想在空行下提取新数据。

4

1 回答 1

0

您只需要更改复制行,因为您忽略了源范围的末尾。

选择性粘贴将复制值而不是公式。

 wsCopy.Range("O3:R" & lCopyLastRow).Copy 
 wsDest.Range("M" & lDestLastRow).pastespecial xlvalues
于 2019-01-24T18:38:40.263 回答