Функция дальности для уменьшения дальности - PullRequest
0 голосов
/ 11 февраля 2019

Я хотел уменьшить диапазон выбранного столбца , чтобы он содержал только непустые ячейки с помощью функции.

Большинство других тем предназначены для sub.

Я все еще новичок в VBA.Я попытался изменить приведенный ниже код несколькими способами, но не могу заставить его работать.Как я могу вернуть уменьшенный диапазон?

Function RangeReduce(rng As Range) As Range
    Dim first_row, last_row As Double
    first_row = rng.Cells(1, 1).Address
    last_row = rng.Cells(Rows.Count).End(xlUp).Address
    Set RangeReduce = Range(first_row, last_row)
End Function

1 Ответ

0 голосов
/ 11 февраля 2019

Вы можете использовать модификатор SpecialCells (не уверен, как он называется) из Range().Кроме того, я предполагаю, что у вас определенно есть константы, но могут или не могут быть формулы.

Function RangeReduce(rng As Range) As Range
Dim constRng As Range, formulaRng As Range
On Error Resume Next
Set constRng = rng.SpecialCells(xlCellTypeConstants)
Set formulaRng = rng.SpecialCells(xlCellTypeFormulas)
On Error GoTo 0


If formulaRng Is Nothing Then
    Set RangeReduce = constRng
Else
    Set RangeReduce = Union(constRng, formulaRng)
End If
End Function

И вы можете назвать как:

Sub t()
Dim redRange As Range
Set redRange = RangeReduce(Range("E:E"))
Debug.Print redRange.Address
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...