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

时间:2014-12-09 19:24:43

标签: excel vba excel-vba excel-formula

我正在寻找一个excel VBA,它将经历特定范围(A1 to C5),如果B列为零,则将C列数据复制到D

enter image description here

对excel VBA没有多少经验,我已经尝试了代码(在公式的帮助下创建),但没有运气。

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
如果错误,有人可以纠正

2 个答案:

答案 0 :(得分:5)

我同意@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

答案 1 :(得分:0)

此代码将完全符合您的要求:

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

然而,您只需使用公式即可轻松实现所要求的内容。我假设你正在寻找一个更宏伟的VBA解决方案,你只提供了一个简单的目的的最终目标的样本。如果不是,为什么不在单元格中使用if / than函数...