Я пытаюсь получить свой код для копирования на основе критериев (есть несколько ячеек, соответствующих критериям), а затем вставьте его на другой лист под уже существующими ячейками.Я использовал .AutoFilter для этого.
Я написал приведенный ниже код, но он содержит ошибки в .AutoFilter и в ws1.copyFrom.Copy.
Справочная информация: Критерий "Активен""найдено в ведомостях (" Бункер будущего проекта "), которое находится в столбце D15 и ниже.Скопируйте данные из столбцов D: J, которые соответствуют вышеуказанным критериям.Вставьте его в Sheets («CPD-Carryover, Complete & Active») в диапазоне C25: J25 под данными, которые уже есть.
Есть ли способ сделать это?
Dim wb1 As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
Dim copyFrom As Range
Dim lRow As Long
Dim Answer As VbMsgBoxResult
Set wb1 = ThisWorkbook
Set ws1 = wb1.Worksheets("Future Project Hopper")
Set ws2 = wb1.Worksheets("CPD-Carryover,Complete&Active")
Answer = MsgBox("Do you want to run the Macro?", vbYesNo, "Run Macro")
If Answer = vbYes Then
With ws1
'clearing any filters
.AutoFilterMode = False
lRow = .Range("D" & .Rows.Count).End(xlUp).row
With .Range("D1:D" & lRow)
'filtering on column D
.AutoFilter Field:=4, Criteria1:="Active"
'Defining range that should be copied - Need C through J and it copies until it's blank cells
Set copyFrom = .Range("C15:J15" & .Rows.Count).End(xlDown)
End With
'clearing any filters
.AutoFilterMode = False
End With
'copy range and paste into other worksheet
ws1.copyFrom.Copy
ws2.Range("C25:J25").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, Transpose:=False
End If
Application.CutCopyMode = False