[英]Excel VBA Copy Paste After Search
我的宏应该只复制粘贴一个数据块。
我的问题是,它仅将数据复制到一列中,我不确定如何解决该问题。
Sheets("Auswertung").Select
Daten = Range("L4:R17")
Sheets("Übersicht").Select
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
For S = 2 To Range("nz85").End(xlToLeft).Column
If Cells(85, S) = Sheets("Auswertung").Range("L3") Then
Range(Cells(86, S), Cells(98, S)) = Daten
Exit For
End If
第85行包含日期。 我想在某个日期复制数据。 Daten
包含日期(如果为“ L3”)及其后6天的信息。 如此一周的数据。 我以为我可以将一个星期的数据简单地放入Daten
并在一周的第一天粘贴,以希望它也可以在接下来的6天中粘贴。 问题在于它仅将日期粘贴到一栏中。
我该如何解决?
尝试这个
Range(Cells(86, S), Cells(98, S+6)) = Daten
重要说明 :您尝试粘贴到13行Range(Cells(86, S), Cells(98, S))
是= 98-86 +1 = 13行 。 虽然Daten = Range("L4:R17")
实际上是14行 。 因此,您会遇到错误,因为Range
和Daten
数组的大小不匹配。
Column
的大小也是如此,您可以将6列复制到1中。(如@ h2so4所述)
因此,要么需要修改您的Daten
,要么是Range(Cells(86, S), Cells(99, S))
?
同样,您可以实现您想要的目标,而无需Select
所有不必要的不同工作表。 只需使用完全合格的Range
和Cells
例如以下代码:
Daten = Sheets("Auswertung").Range("L4:R17").Value
With Worksheets("Übersicht")
For s = 2 To .Range("NZ85").End(xlToLeft).Column
If .Cells(85, s) = Sheets("Auswertung").Range("L3").Value Then
' ******* MODIFY ONE OF THE PARAMETERS AT THE LINE BELOW *******
.Range(.Cells(86, s), .Cells(98, s)).Value = Daten
Exit For
End If
Next s
End With
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.