Как зациклить формулу DATEDIF через цикл с использованием VBA? - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь зациклить формулу DATEDIF, используя VBA, но продолжаю получать ошибку времени выполнения «1004»: ошибка приложения или объекта.Я не уверен, почему код продолжает работать.Сама формула работает.

Sub DateandDaysFormula()


    With ThisWorkbook.Sheets("HDT Pivot Table")
        Dim lastRow As Long
        lastRow = .Cells(.Rows.Count, "D").End(xlUp).Row

        .Range(.Range("L2"), .Range("L" & lastRow)).Formula = _
            "=DATEDIF(RC[-5],TODAY(),'d')"
        .Range(.Range("X2"), .Range("X" & lastRow)).Formula = _
            "=IFERROR(VLOOKUP(D2,DataDrop!A:C,2,FALSE),0)"
    End With

End Sub

1 Ответ

0 голосов
/ 11 февраля 2019

Если вы используете обозначение RC в формуле, вам нужно использовать FormulaR1C1, а не просто Formula.

Кроме того, d должно быть в двойных кавычках, а не в одинарных кавычках.Если вам нужно ввести двойные кавычки внутри строки VBA, вам нужно их удвоить.Итак, проблемная строка должна работать с этим изменением:

.Range(.Range("L2"), .Range("L" & lastRow)).FormulaR1C1 = _
            "=DATEDIF(RC[-5],TODAY(),""d"")"

Это работает в моих тестах.

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