Как использовать IF? Тогда операторы для минуты ячейки минус ячейка равны? - PullRequest
1 голос
/ 03 июля 2019

Я хочу сделать заявление IF If. В ячейках A2 и A3 есть даты. Я хочу, чтобы мой оператор IF Then был следующим: если минута A3 минус минута A2 равна 1, тогда она выполняет мою команду. Я также хочу сделать заявление ElseIf Then, если разница в минутах равна 5 минутам, а если разница в минутах - 15 минут.

Я попытался найти синтаксис в Интернете и скопировал приведенный ниже код, но он не работает. Код читает, что если минутное значение ячейки A3 минус минутное значение ячейки A2 равно 1, то выполняют функцию. Это не работает, хотя.

Sub ExportAverageData()

If (Minute(A3 - A2) = 1) Then
Sheets(2).Select
Range("E2").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(OFFSET(R2C2,(ROW()-ROW(R2C5))*15,,15,))"
Selection.AutoFill Destination:=Range("E2:E9999")
Range("F2").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(OFFSET(R2C3,(ROW()-ROW(R2C6))*15,,15,))"
Selection.AutoFill Destination:=Range("F2:F9999")
ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas, 16).ClearContents

ElseIf (Minute(A3 - A2) = 5) Then
Sheets(2).Select
Range("E2").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(OFFSET(R2C2,(ROW()-ROW(R2C5))*3,,3,))"
Selection.AutoFill Destination:=Range("E2:E9999")
Range("F2").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(OFFSET(R2C3,(ROW()-ROW(R2C6))*15,,15,))"
Selection.AutoFill Destination:=Range("F2:F9999")
ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas, 16).ClearContents

ElseIf (Minute(A3 - A2) = 15) Then
Sheets(2).Select
Range("E2").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(OFFSET(R2C2,(ROW()-ROW(R2C5))*15,,15,))"
Selection.AutoFill Destination:=Range("E2:E9999")
Range("F2").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(OFFSET(R2C3,(ROW()-ROW(R2C6))*15,,15,))"
Selection.AutoFill Destination:=Range("F2:F9999")
ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas, 16).ClearContents

End If

End Sub

1 Ответ

0 голосов
/ 03 июля 2019

Возможно, это поможет, я предполагаю, что вы хотите сослаться на значения внутри ячеек A2 и A3, и в этом случае вам нужно будет также включить теги Range() и .Value.

If (Minute(Range("A2").Value) - Minute(Range("A3").Value) = 1) Then

'Do something

Else If (Minute(Range("A2").Value) - Minute(Range("A3").Value) = 5) Then

'Do something else

Else If (Minute(Range("A2").Value) - Minute(Range("A3").Value) = 15) Then

'Do something else

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