VBA脚本,用于仅编辑粘贴在当前工作簿现有数据下方的另一工作簿中的新数据行



我创建了一个脚本,该脚本定期用于从另一个工作簿复制新数据(以表格形式(,并将其直接粘贴到我当前工作簿的数据下方,其中包括:

Public Sub Copy()
Dim wsCopy As Worksheet
Dim wsDest As Worksheet
Dim CopyLastRow As Long
Dim DestLastRow As Long
Set wsCopy = Workbooks("file1.xlsm").Worksheets("sheet 1")
Set wsDest = Workbooks("file2.xlsm").Worksheets("sheet 2")
CopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "B").End(x1Up).Row
DestLastRow = wsDest.Cells(wsDest.Rows.Count, "B").End(x1Up).Row.Offset(1).Row
Copy.Range("A2:V" & CopyLastRow).Copy_
wsDest.Range ("A" & DestLastRow)
End Sub

我想添加到宏脚本中,这样对于粘贴的每一行新数据:

  • 列L到O向右移动一个单元格
  • 用值"0"填充现在为空的列L;IN">
  • 然后删除Q到S列中的数据

这些更改只会影响新的数据行。

但我不知道当上面有现有数据时,如何引用新数据。此外,新数据的条目数量并不是固定的。

使用一些范围变量,比如这个

Dim rCopy As Range
Dim rDest As Range 
Set rCopy = wsCopy.Range("A2:V" & CopyLastRow)
Set rDest = wsDest.Range ("A" & DestLastRow)
rCopy.Copy rDest
Set rDest = rDest.Resize(rCopy.Rows.Count, rCopy.Columns.Count)
'Then apply your modifications to rDest
rDest.Columns(12).Insert Shift:=xlToRight
rDest.Columns(12).Value = "IN"
rDest.Columns(17).Resize(, 3).Clear

请注意,您对如何修改数据的一些描述有点不清楚。你可能需要调整一些偏移,以获得你想要的

试试这个:

Sub XXX()
Columns("L:L").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("L2:L11").Value = "IN"
Range("Q2:S10").Select
Selection.ClearContents
End Sub

注意:我使用了宏记录器并删除了不必要的行。

最新更新