excel - VBA中循环内的if语句 - excel
问题描述
我正在尝试在 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
解决方案
如果您的测试语句要更长,您也可以使用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
推荐阅读
- c# - WPF / MVVM:需要帮助来修复 ContentControl + DataTemplate 的损坏绑定
- python - 即使在 forms.py 的 UserRegistrationForm 的 Meta 类中使用“排除”变量后,密码 1、密码 2 的字段也会显示(在注册页面上)
- flutter - 在 dispose() 之后调用 setState 方法?
- javascript - 在 render() 中调用函数不呈现内容
- python - 当我从 excel 文件中获取数据时,我遇到了内存错误
- function - 遇到函数超时后将队列触发自动重试
- python - Ajax 调用的替代方案
- javascript - 如何在 javascript 中使用 audioWorklet 和 AudioWorkletProcessor 录制音频?
- elasticsearch - 我有一个数据文件。我想将该数据插入到弹性 search-kibana 中。有什么自动化的方法可以做到这一点吗?
- node.js - 理解节点 js 中的承诺?