VLookup с циклом, если дата сегодня - PullRequest
0 голосов
/ 10 сентября 2018

Здесь я пытаюсь выполнить поиск некоторых значений (скажем, a, b, c, d) между двумя разными рабочими листами двух разных рабочих книг. Я стою на отдельной книге, где я разместил командную кнопку для запуска кода VBA, но получаю ошибка комплимента: «Аргумент не является обязательным» в строке ниже:

y_Sheet.Cells(i, 4) = Application.WorksheetFunction.VLookup(Cells(i, 2).myrange.False)

Любая помощь в этом отношении высоко ценится.

Полный код указан ниже для справки:

Sub macro()
With Application
   .ScreenUpdating = False
   .EnableEvents = False
End With

'On Error Resume Next

Dim x As Workbook
Dim x_Sheet As Worksheet

Dim y As Workbook
Dim y_Sheet As Worksheet

Set x = Workbooks.Open("C:\Users\Win 7\Desktop\V_Lookup\database")
Set y = Workbooks.Open("C:\Users\Win 7\Desktop\V_Lookup\report")

Set x_Sheet = x.Sheets("Sheet1")
Set y_Sheet = y.Sheets("Data")

Dim endrow As Long
Dim nextrow As Long

endrow = x_Sheet.Range("A" & Rows.Count).End(xlUp).Row
nextrow = y_Sheet.Range("A" & Rows.Count).End(xlUp).Row + 1

'COPY ENTIRE ROW USING VLOOKUP IF THE DATE IS TODAY
For i = 2 To endrow
    If x_Sheet.Cells(i, 1).Value = Date Then
        x_Sheet.Cells(i, 1).EntireRow.Copy Destination:=y_Sheet.Cells(nextrow, "A")
        nextrow = nextrow + 1
    End If
Next i

'AUTOMATE REQUIRED VALUE USING VLOOKUP IF THE DATE IS TODAY
Dim lastrow As Long
lastrow = y_Sheet.Range("A" & Rows.Count).End(xlUp).Row
Set myrange = x.Sheets("Sheet2").Range("A:B")
For ii = 2 To lastrow
    If y_Sheet.Cells(ii, 1).Value = Date Then
        y_Sheet.Cells(ii, 4) = Application.WorksheetFunction.VLookup(Cells(ii, 2).myrange.False)
    End If
Next ii

MsgBox "Done"

End Sub

...