Как выбрать активную ячейку, если она имеет значение, а не формулу

#excel #vba #excel-formula

Вопрос:

В диапазоне («A2:A10») У меня есть уравнение vlookup. Я хочу выбрать активную ячейку в этом диапазоне, если она имеет значение, и игнорировать другие ячейки с формулой в том же диапазоне

Комментарии:

1. Можете ли вы объяснить это с помощью примеров данных?

2. Как выбрать уже активную ячейку? Пожалуйста, лучше объясните, что вы хотите делать. Вы говорите о диапазоне? У вас есть «уравнение vlookup» в диапазоне упоминаний? Если «уравнение» означает формулу и в этом диапазоне она у вас есть, где искать ячейку, не содержащую формулу?

Ответ №1:

Это будет Select первая ячейка в диапазоне, в которой нет формулы:

 Sub FindValue()
    Dim rng As Range, r As Range
    Set rng = Range("A2:A10")
    For Each r In rng
        If r.HasFormula Then
        Else
            r.Select
            Exit Sub
        End If
    Next r
End Sub
 

Если все ячейки в диапазоне имеют формулы, Selection не изменяется.

Ответ №2:

Если в диапазоне «A2:A10» у вас есть формулы, но также ячейки без какой-либо формулы, вы можете поместить последнюю категорию в другой диапазон таким образом:

    Dim rng As Range, c As Range
   Set rng = Range("A2:A10")
   Set rng = rng.SpecialCells(xlCellTypeConstants) 'only cells without formula
   For Each c In rng.cells
        c.Select
        Debug.Print c.Address 'if you want the first one, put here Exit For
   Next
 

Если нет ячеек без формулы, приведенный выше код вызовет ошибку. Это может быть поймано с некоторой обработкой ошибок, но я только попытался показать короткий способ сделать это.