如何在一个范围内的每个单元格上运行一个公式

我正在寻找将通过特定范围(A1 to C5)的Excel VBA,如果B列为零,将C列数据复制到D

在这里输入图像说明

不要有太多的经验与Excel的VBA,我已经尝试了代码(这是在公式的帮助下创build的),但没有运气。

 Sub Macro1() ' ' Macro1 Macro Dim FLrange As Range Set FLrange = Range("A1:C5") For Each FLrange In ActiveWindow.RangeSelection If FLrange.Value = 0 Then D$ = C$ Next FLrange End Sub 

有人可以纠正,如果是错误的

我同意@tigeravatar关于公式选项,但如果你真的想让VBA从这开始:

 Sub Macro1() Dim FLrange As Range Set FLrange = Range("B2:B5") For Each cell In FLrange If cell.Value = 0 Then cell.Offset(0, 2) = cell.Offset(0, 1) Next cell End Sub 

这段代码将完成你所要求的:

 Sub myMacro() Dim myRange As Range Set myRange = Range("B2:B5") For Each cell In myRange If Range(cell.Address).value = 0 Then Range(cell.Offset(0, 2).Address).value = Range(cell.Offset(0, 1).Address).value End If Next End Sub 

然而,只要使用一个方程就可以轻松实现。 我假设你正在寻找更macros大的VBA解决scheme,你只是为了简单起见而提供了一个最终目标的样本。 如果不是,那么为什么不使用单元格中的if / than函数呢?