Найти строку и столбец объекта диапазона - PullRequest
0 голосов
/ 08 января 2019

Сначала я ищу в поиске диапазон ячеек, который соответствует значению, которое я хочу найти:

Dim a As Range
Set a = ActiveSheet.Range("A:A").Find("date", LookIn:=xlValues)

Тогда я хотел бы что-то вроде:

a.row
a.Column

Но есть ошибка компиляции: метод недопустим без подходящего объекта

Есть ли способ найти номера строк и столбцов объекта диапазона, который получается при поиске значения ячейки?

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Ошибка компиляции диапазона

Произошла ошибка компиляции, потому что вы не можете просто написать a.Row или a.Column, вы должны использовать уравнение или использовать его в функции. Find всегда возвращает либо Nothing, либо диапазон ячеек, который имеет свои свойства Когда вам нужно использовать его строку или столбец, вы пишете, например,

Dim b as Long
b = a.Row 

или для записи в ту же ячейку в другом листе:

Worksheets("Sheet2").Range(a.Row, a.Column) = 25

Чтобы проверить, нашел ли Find значение, используйте следующую кодовую комбинацию.

Код

Sub CellRangeUsage

    Dim a As Range

    Set a = ActiveSheet.Range("A:A").Find("date", LookIn:=xlValues) 

    If Not a Is Nothing then ' Check if value was found.
        MsgBox "'date' was found in row " & a.Row & " of column " & a.Column & "."
      Else
        MsbBox "'date' was not found."
    End If

End Sub    
0 голосов
/ 08 января 2019

Используя функцию debug.print или MsgBox, вы можете узнать строку и столбец:

Sub findcell()

Dim a As Range
Set a = ActiveSheet.Range("A:A").Find("date", LookIn:=xlValues)

if Not(a is nothing) then
    Debug.Print "row of cell: " & a.Row
    Debug.Print "column of cell: " & a.Column
    MsgBox "row of cell: " & a.Row
    MsgBox "column of cell: " & a.Column
else: Msgbox "Cell not found"
end if

End Sub

Редактировать: я редактировал код с веткой if, учитывая то, что упомянул Харассед

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...