Excel VBA复制粘贴后search
我的macros应该简单地复制粘贴一块数据。
我的问题是,它只将数据复制到一列,我不知道如何解决这个问题。
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行包含date。 我想在某个date复制数据。 Daten
包含date的信息,如果“L3”和接下来的6天。 所以一个星期的数据。 我以为我可以简单地把一个星期的数据放入Daten
并把它粘贴到一周的第一天,希望它能粘贴下一个6天。 问题是它只能粘贴在一列中的date。
我怎么解决这个问题?
尝试这个
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