【发布时间】:2021-11-18 07:04:58
【问题描述】:
我正在更新每周的主文件。结果,我试图将数据从源文件复制并粘贴到主表。现在,需要将数据粘贴到前一周数据之后的列和行中。因此,例如,如果上周数据结束(“H70:M70”),我需要新粘贴的数据转到(“H71:M71”)。此外,新粘贴的数据有很多行,因此下周数据必须粘贴在本周数据的最后一行/列之后,即(“H230:M230”)。请帮忙。
Option Explicit
Sub Copydata()
Dim myWB As Workbook
Dim thisWB As Workbook
Dim thisWS As Worksheet
Application.ScreenUpdating = False
Set myWB = Workbooks.Open("C:\Users\jjordan\Desktop\test.xlsx")
myWB.Sheets("Sheet1").Range("A8:F17").Copy
Set thisWB = ThisWorkbook
Set thisWS = thisWB.Sheets("Test data")
thisWB.Activate
thisWS.Range("H71:M71").PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
With Application
.CutCopyMode = False
.ScreenUpdating = True
End With
myWB.Close
End Sub
【问题讨论】:
-
thisWS.Range("A1")所以不是A1而是找到最后一行并使用它。编辑:你需要 5 分钟才能弄清楚如何找到最后一行 ^_^ -
@findwindow。新粘贴的区域有很多数据。这意味着,新数据必须“专门”粘贴在一个范围内的区域中。例如(“H71:M71”)。
-
这也很容易做到。这将需要更长的时间才能弄清楚。提示:谷歌
resize。编辑:好吧,既然你在复制/粘贴,那是无关紧要的,因为你可以只粘贴在最后一行。我建议改为设置范围,但你需要resize。 -
我认为这里的关键是最后一行/最后一列数据。该范围似乎很简单,但它必须是自动化的,因此新数据粘贴在前几周数据的最后一列/行之后。
-
就像我说的,这需要您 5 分钟 才能弄清楚。如果它需要更长的时间......这个任务可能超出你的范围,你应该花钱请人去做 XD