Нужна помощь с моим кодом. У меня две проблемы.
1-й выпуск - я пытаюсь сделать мой код равным l oop, если заполнить пустую ячейку и дату в столбце 1 меньше, чем сегодняшняя дата
And .Cells(rw, 1) < Format(dt, "dd-mmm")
но эта <сегодняшняя дата не может работать. Макрос все еще продолжается, даже если дата больше сегодняшней даты </p>
Во 2-м выпуске я хотел бы выполнить автозаполнение от столбца 5 до 9 из предыдущей строки. Я сохраняю ошибку дальности встречи
Set rng = .Range(.Cells(rw - 1, 5), .Cells(rw, 9))
Selection.AutoFill Destination:=rng, Type:=xlFillDefault
и
Selection.AutoFill Destination:=Range(.Cells(rw - 1, 5), .Cells(rw 1, 5)), Type:=xlFillDefault
Sub DataGrab()
Dim rw As Long, x As Range, rng As Range
Dim extwbk As Workbook, twb As Workbook
Set twb = ThisWorkbook
Set extwbk = Workbooks.Open("D:\Users\Desktop\Report " & Format(Now, "DD-MMM-YYYY") & ".xls")
Set x = extwbk.Worksheets("Summary").Range("A4:AF100")
dt = Date
With twb.Sheets("Sheet1")
For rw = 3 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(rw, 2) = "" And .Cells(rw, 1) < Format(dt, "dd-mmm") Then
.Cells(rw, 2) = Application.VLookup(.Cells(rw, 1).Value2, x, 23, False)
.Cells(rw, 3) = Application.VLookup(.Cells(rw, 1).Value2, x, 29, False)
.Cells(rw, 4) = Application.VLookup(.Cells(rw, 1).Value2, x, 31, False)
Set rng = .Range(.Cells(rw - 1, 5), .Cells(rw, 9))
Selection.AutoFill Destination:=rng, Type:=xlFillDefault
'Selection.AutoFill Destination:=Range(.Cells(rw - 1, 5), .Cells(rw 1, 5)), Type:=xlFillDefault
End If
Next rw
End With
extwbk.Close savechanges:=False
End Sub