#excel #vba
#excel #vba
Вопрос:
Я пытаюсь выбрать столбец в пределах отфильтрованного диапазона, но вместо этого он продолжает выбирать первую ячейку. У меня таблица уже отфильтрована, просто нужно выбрать фактический столбец (столбец E), за вычетом заголовка.
В настоящее время это то, что у меня есть:
'After sorting, we will end up with several data rows for
'which we will need to sort from. Now that we have a filtered table,
'we would then need to created a variable for our new filtered range
Dim DeliverableTablefltrdRng As Range
Set DeliverableTablefltrdRng = rRange.SpecialCells(xlCellTypeVisible)
'Now that we have all these sorted, we will then need to
'verify whether the target finish date is within the start and end date
Dim WorkOrderRange As Range
Set WorkOrderRange = DeliverableTablefltrdRng.SpecialCells(xlCellTypeVisible).Range("E2:E" amp; Cells(Rows.Count, 1).End(xlUp).Row).Select
Комментарии:
1. вы ищете что-то вроде этого: ActiveSheet. Диапазон («$ E $ 2: $ E $» и ActiveSheet. Ячейки (1048576, 9).Конец (xlUp).Строка). Поле автофильтра:=1, Критерий1:=» выполнить »
Ответ №1:
Нет необходимости предварительно извлекать диапазон видимых ячеек. Пожалуйста, протестируйте следующий способ:
Sub testSelectVisColRange()
Dim sh As Worksheet, lastR As Long, WorkOrderRange As Range
'your code filterring...
Set sh = ActiveSheet
lastR = sh.Range("E" amp; rows.count).End(xlUp).row
Set WorkOrderRange = sh.Range("E2:E" amp; lastR).SpecialCells(xlCellTypeVisible)
WorkOrderRange.Select
End Sub
В коде должен быть (простой) способ устранения ошибки, возникающей в случае отсутствия какой-либо видимой ячейки, но это всего лишь пример, показывающий, как следует действовать…
Комментарии:
1. @RawrRawr7: Разве мой приведенный выше код не решил вашу проблему?