VBA: получение во время выполнения 1004: сбой метода «Диапазон» объекта «_Worksheet». Это не копирование в диапазон - PullRequest
0 голосов
/ 03 февраля 2020

Это код:

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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...