将Excel函数转换为VBA代码以实现自动化

时间:2019-05-07 10:40:08

标签: excel vba

我正在尝试将我的 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 个答案:

答案 0 :(得分:2)

您可以通过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