我正在寻找一个excel VBA,它将经历特定范围(A1 to C5)
,如果B
列为零,则将C
列数据复制到D
对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
如果错误,有人可以纠正
答案 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函数...