'如果......那么'循环语句

时间:2015-10-07 20:09:27

标签: excel vba excel-vba loops if-statement

我看起来像一个非常简单的应用程序,循环和'If..Then'语句,但需要一些帮助来构建它。

在一个基本示例中,我在列A中有一个列表编号,在列B中列出了值PMAM。我想编写一个循环来搜索B列中的每个值直到数据集结束,并且每次列B的值为12时,将PM添加到A列中的每个值。简而言之,它看起来像这样:

  • 如果列B = PM
  • 然后将12添加到A列中相应的单元格
  • 否则向下移动到下一行并执行相同的操作,直到达到空单元格

3 个答案:

答案 0 :(得分:3)

有很多方法,这是典型的方法:

Sub dural()
   Dim i As Long

   i = 1
   Do While Cells(i, "B").Value <> ""
      If Cells(i, "B").Value = "PM" Then
            Cells(i, "A").Value = Cells(i, "A").Value + 12
      End If
      i = i + 1
   Loop
End Sub

答案 1 :(得分:0)

您可以使用For next循环和2个变量进行设置。一行用于最后一行,第二行用于行计数:

   Sub Macro1()

        Dim LastRow As String
        Dim i As Integer
        LastRow = Cells(Rows.Count, "A").End(xlUp).Row
        For i = 1 To LastRow
        If Cells(i, 2).Value = "PM" Then Cells(i, 1).vlaue = Cells(i, 1).vlaue + 10
        Next i
        End

        '
        End Sub

答案 2 :(得分:0)

这是另一种方法。

Option Explicit

Sub Add()
    Dim rData As Range
    Dim r As Range

    Set rData = Cells(1, 1).CurrentRegion.Columns("B").Cells

    For Each r In rData
        If UCase$(r.Value) = "PM" Then
            r.Offset(, -1).Value = r.Offset(, -1).Value + 12
        End If
    Next r
End Sub