【问题标题】:VBA- if criteria met, place desired text in the next columnVBA-如果满足条件,则将所需文本放在下一列中
【发布时间】:2016-10-11 18:41:22
【问题描述】:

我想将IF 公式转换为 VBA 代码:

我有“字母数字字符串 255 max char”,列“Q”中有基于注释的描述 我有一个空白列“R”

“R2”中的公式

=IF(ISNUMBER(SEARCH("sc",Q2)),"Service Call","")

我有大约 39,000 行要执行此操作,这就是我想在 VBA 中尝试的原因。

如果我需要不同的实例,代码应该是什么?

=IF(ISNUMBER(SEARCH("sp",Q2)),"Springs","") **Multiple conditions for ...

=IF(ISNUMBER(SEARCH("Amarr",Q2)),"Door","") **Multiple conditions for ...

【问题讨论】:

  • 使用变体数组。

标签: excel if-statement excel-formula vba


【解决方案1】:

下面的代码应该做你想做的。

Sub ColQtoColR()
Dim FirstRow, LastRow, RowCount As Long
Dim GCell As Range

FirstRow = 2
LastRow = 39000
For RowCount = FirstRow To LastRow
Set GCell = Cells(RowCount, 17)
    If InStr(GCell, "sc") = 1 Then
        GCell.Offset(0, 1).Value = "Service Call"
    ElseIf InStr(GCell, "sp") = 1 Then
        GCell.Offset(0, 1).Value = "Springs"
    ElseIf InStr(GCell, "Amarr") = 1 Then
        GCell.Offset(0, 1).Value = "Door"
    Else
        GCell.Offset(0, 1).Value = ""
    End If
Next RowCount

End Sub

可以轻松添加更多条件,并且可以更改处理的行数。在我的旧笔记本电脑上运行只需要几秒钟。如果其中两个字符串出现在 Q 列的文本中,那么它将匹配最后一个测试的字符串。

【讨论】:

  • 这正是我想要的,但速度非常慢,我会接受的。非常感谢你。确保 Col"Q" 中的字符串没有#error,否则它将停止。
猜你喜欢
  • 2016-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-23
  • 2019-06-05
  • 2017-01-13
  • 2015-07-09
  • 1970-01-01
相关资源
最近更新 更多