试图了解如何使用某些参数编写if then elseif语句

时间:2013-12-09 22:19:19

标签: excel loops excel-vba vba

是的,我是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

2 个答案:

答案 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)

像这样:

  1. 您可以使用两个范围,D29:E43定义的范围(下面为rng1),然后循环显示此范围内的每个单元格(rng2
  2. 请注意rng1已直接参考工作表10设置,以确保它在正确的工作表上运行(并且不需要选择该工作表)
  3. 您需要在
  4. 上指定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