Смещение VBA от определенной ячейки - PullRequest
0 голосов
/ 05 августа 2020

У меня есть более 200 листов в данной книге, и я пытаюсь получить некоторые цены, основанные на заданных датах. Я пытаюсь использовать метод Find для поиска столбца A на каждом листе (кроме сводного листа), чтобы найти заданную дату, а затем смещать 4 столбца, чтобы получить соответствующие цены. Код не работает на fr = r.Offset(0, 4).Value и выдает ошибку Object variable или With block variable not set. Я попытался настроить код и использовать другие подходы, но продолжаю получать аналогичную ошибку.

Sub fill()
ActiveWorkbook.Worksheets("Summary").Activate

Dim From_Date As Variant
Dim To_Date As Variant

 From_Date = Range("A2").Value
 To_Date = Range("A1").Value

Dim rng As Worksheet
Dim fr As Variant
Dim tr As Variant
Dim pct As Variant
Dim r As Range

For Each rng In ActiveWorkbook.Worksheets
    If rng.Name <> "Summary" Then
        rng.Activate
        Set r = Range("A:A").Find(To_Date)
        fr = r.Offset(0, 4).Value
        
    End If
    

Next rng
End Sub

1 Ответ

1 голос
/ 05 августа 2020

Вам необходимо проверить результат метода Find(), как описано здесь:

Set r = Range("A:A").Find(To_Date)
If Not (r Is Nothing) Then
  fr = r.Offset(0, 4).Value
  ...
End If

(Не используйте fr в случае, если r имеет значение null, он все еще может содержать результат предыдущего л oop)

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