У меня возникли проблемы с копированием определенных строк с помощью vba.Скопируйте определенные строки из одной книги в другую
Вот мой код:
Dim color1 As Integer
Dim color2 As Integer
Dim lines As Integer
Workbooks.Open Filename:="D:\01 January.xlsm", _
UpdateLinks:=0
lines = WorksheetFunction.CountA(Range("U:U")) - 1
Dim i As Integer
For i = 6 To lines + 6
color1 = Cells(i, 21).Value
color2 = Cells(i, 22).Value
If IsNumeric(Cells(i, 21)) Then
Select Case color1 & color2
Case Evaluate("=White") & Evaluate("=Blue")
Rows(i & ":" & i).Select
Case Evaluate("=Yellow") & Evaluate("=Yellow")
Rows(i & ":" & i).Select
Case Evaluate("=Yellow") & Evaluate("=Green")
Rows(i & ":" & i).Select
End Select
End If
Next i
Selection.Copy
Windows("Test.xlsm").Activate
Rows("11:11").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
Так как вы можете увидеть, что я пытаюсь выбрать строки, которые удовлетворяют критериям в January.xlsm и вставить их затем в test.xlsm
На данный момент он вставляет только последний выбранный ряд, а не все из них.
Я довольно новичок в vba, поэтому мне действительно нужна ваша помощь здесь. То, что я понял, состоит в том, чтобы поместить все необходимые строки в массив, а затем скопировать его в другую книгу. Но не знаю, если это хорошо или просто рубить, и если это сработает, я не смогу найти решение ...
Спасибо за вашу помощь!
Большое спасибо! Прекрасно работает, кроме одного. Я теперь понял, что я действительно хотел вставить строки, а не просто скопировать их. Поскольку количество строк является переменным, я не знаю, сколько места мне нужно в моей новой книге. Знаете ли вы, как это должно выглядеть ниже «With Rows» («11:11»), «если я хочу вставить их туда? – Felicce