VBA Excel Получить адрес ячейки или значение по строке, содержащей «X» и столбец с «Y» - PullRequest
0 голосов
/ 10 января 2020

Основная цель состоит в том, чтобы получить значение ячейки, в которой строка, содержащая «NQQ», пересекается со столбцом, в котором содержится «Доход», я выделил ячейку желтым цветом.

До сих пор я только что преуспел в получить строку номер, который содержит «NQQ», и я застрял.

'Find row of NQQ
    Columns("A:A").Select 
    Set Cell = Selection.Find(What:="NQQ", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)

    CellNr = Cell.Row

enter image description here

Ответы [ 2 ]

4 голосов
/ 10 января 2020

Примените тот же лог c к Доходу и используйте свойства Row и Column найденных диапазонов. Всегда используйте проверку при использовании Find, что поиск нашел элемент, чтобы избежать ошибок.

Вы можете сделать это с формулами, кстати.

Sub x()

Dim Cell As Range, Cell1 As Range

Set Cell = Columns("A:A").Find(What:="NQQ", LookIn:=xlFormulas, _
                               LookAt:=xlWhole, MatchCase:=False, SearchFormat:=False)
Set Cell1 = Rows(1).Find(What:="Revenue") 'assume revenue is in row 1

If Not Cell Is Nothing And Not Cell1 Is Nothing Then 'avoid error if one or both not found
    MsgBox Cells(Cell.Row, Cell1.Column).Address
End If

End Sub

enter image description here

1 голос
/ 10 января 2020
Dim Add As String
Add = Cells(WorksheetFunction.Match("NQQ", Range("A:A"), 0), "C").Address
Debug.Print Add

Если столбец «Доход» не всегда находится в одной и той же позиции, используйте этот код:

Add = Cells(WorksheetFunction.Match("NQQ", Range("A:A"), 0), _
            WorksheetFunction.Match("Revenue", Range("1:1"), 0)).Address
Debug.Print Add
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...