如何使用VBA在Excel单元格中设置公式?

如何使用VBA在Excel单元格中设置公式?,excel,vba,formula,Excel,Vba,Formula,Scott Craner为我提供了在一个单元格中设置公式的解决方案: Range("F4").Formula = "=IF(D4,B4,"""")" 现在我想动态地应用它。以下是我的翻译: For i = 4 to 10 Range("F" & i).Formula = "=IF(D" & i ",B" & i ", """")" Next i 这将立即在编辑器中变为红色。我需要一些能跑的东西。提前通知Tnx 我能做些什么来解决这个问题?比如

Scott Craner为我提供了在一个单元格中设置公式的解决方案:

Range("F4").Formula = "=IF(D4,B4,"""")"
现在我想动态地应用它。以下是我的翻译:

   For i = 4 to 10
       Range("F" & i).Formula = "=IF(D" & i ",B" & i ", """")"
   Next i
这将立即在编辑器中变为红色。我需要一些能跑的东西。提前通知Tnx

我能做些什么来解决这个问题?

比如,你不需要任何循环

ActiveSheet.Range("F4:F10").Formula = "=IF(D4,B4,"""")"

这正是你想要达到的。Excel就是这么聪明

两件事:“它变成红色”不是错误代码,请不要要求“好的参考资料”,这样你的问题就不会因为脱离主题(请求外部资源)而结束。没有循环:
范围(“F4:F10”)。公式=“=IF(D4,B4,”””)
@K.Dᴀᴠɪs“it turning red”实际上是一个普通的旧编译时语法错误。顺便说一句:它不会编译,因为您缺少
&
“=IF(D”&i&>,B”&i&>,“”“)”
,但不需要循环选项更快。是的,Scott Craner的范围(“F”&i)。公式=“=IF(D”&i&>,B”&i&>,“”)循环很好。我事先不知道射程是多少。因此循环。@Chas您必须知道循环的范围,只需使用范围本身中的范围并避免循环。@Chas然后执行
ActiveSheet.range(“F”&startRow&“:F”&endRow)。公式=“=IF(D”&startRow&“,B”&startRow&“,”)
-无需循环。