是的,我是VBA无能的。只是学习,我需要有人看看这个并指出我正确的方向。我想为一系列单元格写一个if语句。我希望宏观察每个单元格,如果单元格= 0,则清除单元格,如果单元格<> 0,然后什么都不做,看下一个细胞。
这是我可怜的尝试。
Sub MACRO6()
Dim VM As String
VM = Range("D29:E43")
Sheets("10").Select
For Each VM In Range
If cell = 0 Then ClearContents
ElseIf cell <> 0 Then
End If
Next
End Sub
答案 0 :(得分:3)
您的ElseIf
是不必要的。默认情况下它什么都不做。只需删除该行。由于您的If ... Then
位于一行,因此您也不需要End If
,并且应将其删除。
你想要类似下面的东西(从this example调整):
Sub ClearZero()
For Each c In Worksheets("10").Range("D29:E43").Cells
If c.Value = 0 Then c.Value = ""
Next
End Sub
答案 1 :(得分:3)
像这样:
D29:E43
定义的范围(下面为rng1
),然后循环显示此范围内的每个单元格(rng2
)rng1
已直接参考工作表10
设置,以确保它在正确的工作表上运行(并且不需要选择该工作表)ClearContents
的范围
醇>
<强>码强>
Sub MACRO6()
Dim rng1 As Range
Dim rng2 As Range
Set rng1 = Sheets("10").Range("D29:E43")
For Each rng2 In rng1
If rng2.Value = 0 Then rng2.ClearContents
Next
End Sub