Это код:
Sub RunFilter()
Dim LastRow As Long, LastCritRow As Long, LastResultRow As Long
Sheet1.Range("C31:AH365").ClearContents 'Clear Existing Results
With Sheet2
If Sheet1.Range("L27").Value = "Enter name." Then LastCritRow = 2 'Determine Last Criteria Row
LastRow = .Range("A9999").End(xlUp).Row 'Last Row of Data
.Range("A2:AF" & LastRow).AdvancedFilter xlFilterCopy, CriteriaRange:=.Range("AI2:BN" & LastCritRow), CopyToRange:=.Range("BQ2:CV2"), Unique:=False
LastResultRow = .Range("BQ999").End(xlUp).Row 'Last Results Row
If LastResultRow < 2 Then GoTo NoResults
Sheet1.Range("C31:AH" & LastResultRow + 29).Value = .Range("BQ2:CV" & LastResultRow).Value 'Copy Over Results
NoResults:
End With
End Sub
Я получаю сообщение об ошибке в этой строке:
.Range("A1:AF" & LastRow).AdvancedFilter xlFilterCopy, CriteriaRange:=.Range("AI1:BN" & LastCritRow), CopyToRange:=.Range("BQ1:CV1"), Unique:=False
Я погуглил возможные проблемы, такие как отключение или неправильное указание имен диапазоны. Поэтому я проверил диапазоны в моей расширенной вкладке на то, что я поместил в код, и они были выключены на 1, поэтому я обновил их. Я все еще получаю сообщение об ошибке.
Изменить на комментарий: Это то, что находится в ячейке L27, когда я не ввел спецификации для фильтрации. Это назначено кнопке:
Sub ClearFilter()
Dim LastRow As Long
LastRow = Sheet2.Range("A9999").End(xlUp).Row 'Last Row of Data
Sheet1.Range("C31:AH" & LastRow + 29).Value = Sheet2.Range("A2:AF" & LastRow).Value 'Bring Data Over
Sheet1.Range("L27").Value = Sheet1.Range("AN31").Value 'Copy Over Default Text
Sheet2.Range("AI2:BN2").ClearContents
End Sub