Конвертировать функцию Excel в код VBA для автоматизации - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь преобразовать мои excel формулы в VBA , чтобы автоматизировать электронную таблицу, которую я делаю ежедневно.

Как бы я изменил следующее для работы в VBA?

=IF(OR(A2="Story",A2="Task"),((J2+SUMIFS($J:$J,$D:$D,C2))/3600)/8,"")

=IF(OR(A2="Story",A2="Task"),((K2+SUMIFS($K:$K,$D:$D,C2))/3600)/8,"")

=IF(OR(A2="Story",A2="Task"),IF(OR(E2="Done",E2="Closed"),O2,IF(N2<M2,((M2-N2)/M2)*O2,0)),"")

Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 07 мая 2019

Вы можете использовать формулы в VBA таким простым способом:

Sub Test()
With Range("B2:B" & Cells(Rows.Count, 1).End(xlUp).Row)
    .Formula = "=IF(OR(A2=""Story"",A2=""Task""),((J2+SUMIFS($J:$J,$D:$D,C2))/3600)/8,"""")"
End With
End Sub

Обратите внимание, строки должны быть заключены в двойные кавычки "Story" ".. И вы можете назначить диапазон, в который вы хотите вставить формулы. А также вы можете добавить строку, чтобы получить только значения вместо формул

Sub Test()
With Range("B2:B" & Cells(Rows.Count, 1).End(xlUp).Row)
    .Formula = "=IF(OR(A2=""Story"",A2=""Task""),((J2+SUMIFS($J:$J,$D:$D,C2))/3600)/8,"""")"
    .Value = .Value
End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...