Как сохранить значение ячейки обновленным, пока электронная таблица используется - PullRequest
0 голосов
/ 04 мая 2020

Я только начал работать с VBA и столкнулся с некоторыми проблемами при кодировании.

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

Function FindCell()
Dim CellLocation As Range
Set CellLocation = Sheets("Data").Range("A:A").Find("OBRC", LookIn:=xlValues) 'Returns the cell in which OBRC is found

И чтобы эта функция соответствовала моим требованиям, я реализовал вторую часть кода, где моя функция записывает значение, полученное в ячейке P3:

Function FindCell()
Dim CellLocation As Range
Set CellLocation = Sheets("Data").Range("A:A").Find("OBRC", LookIn:=xlValues) 'Returns the cell in which OBRC is found


While ActiveSheet.Name = "Data"

    With ThisWorkbook.Sheets("Data").Range("P3").Value = FindCell.Value


End With
Wend


End Function

Но каждый раз, когда я пытаюсь вызвать эту функцию, я получаю ошибку

Ошибка времени выполнения 424: Требуется объект

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

enter image description here Возврат к событию:

Private Sub Worksheet_Change(ByVal Target As Range)
     'whatever code you're trying to implement
End sub

Попробуйте пример изображения, который наверняка даст вам идею;)

0 голосов
/ 04 мая 2020

Во-первых, функция предназначена для возврата значения. Для приведенного выше кода процедура будет работать очень просто.

Обратите внимание на использование SearchDirection в функции поиска для поиска последнего вхождения значения.

 Sub FindCell()

    With Sheets("Data")

       Dim lastRow As Long
       lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row

       Dim foundIt As Range
       Set foundIt = .Range("A1:A" & lastRow).Find("OBRC", LookIn:=xlValues, SearchDirection:=xlPrevious)

       If Not foundIt Is Nothing Then
           .Range("P3").Value = foundIt.Address
        End If

    End With

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