Здесь я пытаюсь выполнить поиск некоторых значений (скажем, 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