我创建了一个脚本,该脚本定期用于从另一个工作簿复制新数据(以表格形式(,并将其直接粘贴到我当前工作簿的数据下方,其中包括:
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
注意:我使用了宏记录器并删除了不必要的行。