Я пытаюсь скомпилировать код, который будет получать данные из каждого листа в книге, которая называется Employee, и вытащить данные, которые имеют только текущую дату в столбце «O», однако у меня возникают проблемы с добавлением поля критериев, и я, вероятно, просто не делаю этого правильно.VBA Excel, чтобы выбрать диапазон, только если текущая дата существует
Sub x()
Dim NewWB As Excel.Workbook
Dim ws As Excel.Worksheet
Dim r As Excel.Range
Dim r2 As Excel.Range
Set NewWB = Workbooks.Add
ThisWorkbook.Sheets(6).Range("B1:O1").Copy NewWB.Sheets(1).Range("A1")
For Each ws In ThisWorkbook.Worksheets
If ws.name Like "Employee*" Then
Set r = ws.Range("B2", ws.Range("O" & ws.UsedRange.Rows.count) Field:=15, Criteria1:=">=" & Date)
r.Copy
Set r2 = NewWB.Sheets(1).Range("A" & Rows.count).End(xlUp).Offset(1)
r2.PasteSpecial Paste:=xlValues
r2.PasteSpecial Paste:=xlPasteColumnWidths
r2.PasteSpecial Paste:=xlPasteValues
r2.PasteSpecial Paste:=xlPasteFormats
r2.Offset(, 14).Resize(r.Rows.count).Value = ws.name
End If
Next
End Sub
Спасибо!
Я получаю ошибку компиляции: Ожидаемое: выражение в строке с полем: = 15, _ Я попытался просто удалить разделитель кода и иметь поле рядом с .AutoFilter, но это тоже не сработало. – Lilly
@Lilly Сообщите мне, если редактирование, которое я сделал для этого ответа, не работает. –
Кажется, что то, что вы написали, будет работать, но проблема, с которой я сталкиваюсь, заключается в том, что часть фильтра задана в коде, который вы указали, для новой книги, которая была добавлена, поэтому возникает ошибка, поскольку данные не Скопировано еще. – Lilly