Я пытаюсь отфильтровать диапазон значений и, основываясь на своих критериях, иногда у меня могут не быть данных, соответствующих моим критериям. В этом случае я не хочу копировать какие-либо данные из отфильтрованных данных. Если есть отфильтрованные данные, то я хотел бы их скопировать.
Вот мой код:
With Workbooks(KGRReport).Worksheets(spreadSheetName).Range("A1:I" & lastrowinSpreadSheet)
.AutoFilter Field:=3, Criteria1:=LimitCriteria, Operator:=xlFilterValues 'Do the filtering for Limit
.AutoFilter Field:=9, Criteria1:=UtilizationCriteria, Operator:=xlFilterValues 'Do the filtering for Bank/NonBank
End With
'Clear the template
Workbooks(mainwb).Worksheets("Template").Activate
Workbooks(mainwb).Worksheets("Template").Rows(7 & ":" & Rows.Count).Delete
'Copy the filtered data
Workbooks(KGRReport).Activate
Set myRange = Workbooks(KGRReport).Worksheets(spreadSheetName).Range("B2:H" & lastrowinSpreadSheet).SpecialCells(xlVisible)
For Each myArea In myRange.Areas
For Each rw In myArea.Rows
strFltrdRng = strFltrdRng & rw.Address & ","
Next
Next
strFltrdRng = Left(strFltrdRng, Len(strFltrdRng) - 1)
Set myFltrdRange = Range(strFltrdRng)
myFltrdRange.Copy
strFltrdRng = ""
Это дает мне ошибку в
Set myRange = Workbooks(KGRReport).Worksheets(spreadSheetName).Range("B2:H" & lastrowinSpreadSheet).SpecialCells(xlVisible)
Когда данных вообще нет, возвращается ошибка: «Ячейки не найдены».
Пробовал обрабатывать ошибки, как это сообщение: 1004 Ошибка: ячейки не найдены, легко решение?
Но это не помогало. Нужен совет, как решить эту проблему.
If Workbooks(KGRReport).Worksheets(spreadSheetName).Range("B2:H" & lastrowinSpreadSheet).RowHeight Then
, если ничего не отображается, высота равна0
, что будет считатьсяFalse
(все остальное будет считатьсяTrue
) - person Dirk Reichel   schedule 12.04.2016