Параметр после , который вы используете, недопустим. Удалите его, и вы больше не получите ошибку несоответствия типов. Ответ на первый вопрос, и теперь у нас есть другой ... Я проверяю, как мы можем правильно установить это значение.
Я считаю, что, возможно, если вы дадите лучшее объяснение того, чего вы пытаетесь достичь, мы могли бы улучшить нашу помощь, предлагая предложения.
1007 * Rgds *
Edit:
Похоже, что После должен находиться в пределах диапазона поиска (и я считаю, что это не то, что вы хотите).
Этот код не вызывает ошибок, хотя я считаю, что не делает то, что вы хотите. Если вы дадите нам лучший пример того, что вам нужно, мы сможем помочь вам в дальнейшем.
совет № 1: В следующий раз при отправке кода я бы попросил вас также включить в ваш код объявление переменных, которые вы используете (вы используете Option Explicit , верно?). Особенно в Несоответствие типов ошибки, тип переменной может вызвать проблему.
tip # 2: Я бы посоветовал взглянуть на венгерскую нотацию.
Sub test()
Dim qa_14 As Worksheet
Dim prod_14 As Worksheet
Dim prod_o14 As Worksheet
Dim iCounter As Integer
Dim iRow As Integer
Dim rngAfter As Excel.Range
Dim rngWhat As Excel.Range
Dim Found As Range
Dim QARange As Range
Set qa_14 = Sheets("QA 14Feb")
Set prod_14 = Sheets("Prod 14Feb")
Set prod_o14 = Sheets("Sheet1")
iCounter = 1
For iRow = 1 To prod_14.UsedRange.Rows.Count
Set QARange = qa_14.Cells(2, 1)
Set rngAfter = QARange.Cells(1, 1)
Set Found = QARange.Find(What:=prod_14.Cells(iRow, 2).Text, After:=rngAfter, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If Not Found Is Nothing Then
prod_14.UsedRange.Range(Cells(iRow, 1), Cells(iRow, prod_14.UsedRange.Columns.Count)).Copy prod_o14.Range("A" & LTrim(Str(iCounter)))
iCounter = iCounter + 1
End If
Next
End Sub