VBA中循环内的if语句-Excel

时间:2018-10-10 20:28:15

标签: excel vba

我正在尝试在VBA for Excel的循环内用简单的IF语句编写宏。老实说,我不知道我在做什么。我使IF语句起作用,然后尝试在其周围添加一个循环-但是该循环不起作用。

基本上我想编写一个宏来检查单元格F11,然后将IF语句的结果添加到G11,然后下拉到下一行,检查F12,将结果添加到G12,等等,直到最后。下面是代码。如果有人可以帮助我,那就太好了!

Sub Country()    
    Dim cell As Range    
    For Each cell In ActiveSheet.Range("G11:G100")    
        If ActiveCell.Offset(0, -1) = "AUBNE" Then
            ActiveCell.FormulaR1C1 = "AUSTRALIA"    
        ElseIf ActiveCell.Offset(0, -1) = "CNTAO" Then
            ActiveCell.FormulaR1C1 = "CHINA"    
        Else: ActiveCell.FormulaR1C1 = "NA"    
        End If    
    Next cell    
End Sub

1 个答案:

答案 0 :(得分:0)

如果您要延长测试语句的时间,也可以使用Select Case。在这种情况下,它可能会更干净一些,尤其是当多个值返回相同的国家/地区时。

此外,myCell(或其他任何内容)而不是cell。避免声明自己的变量接近预定义的对象是明智的。稍后可能导致混乱/错误。


Option Explicit

Sub Country()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim myCell As Range

Application.ScreenUpdating = False
    For Each myCell In ws.Range("G11:G100")
        Select Case myCell.Offset(, -1).Value
            Case "AUBNE"
                myCell = "AUSTRALIA"
            Case "CNTAO"
                myCell = "CHINA"
            Case Else
                myCell = "NA"
        End Select
    Next myCell
Application.ScreenUpdating = True

End Sub