我正在尝试在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
答案 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