vba - 如果多个条件匹配,则返回 true

标签 vba excel

您好我在 VBA 相当新。我正在处理一个超过 10,000 行的大型电子表格。我想要完成的是:

  • 首先一个宏将在 E 列中查找值 1
  • 如果有匹配项,它将在 D 列左侧的一个单元格中查找两个可能的字符串值。
  • 如果该行的两个条件都满足,则在相应的 G 行中返回 true

  • 这就是我下面的内容,它在下面不起作用,我遇到了错误。任何帮助表示赞赏。
        Sub find_mismatch()
         Dim c As Range
         Dim string1 As String
         Dim string2 As String
         string1 = "Apple"
         string2 = "Orange"
    
         For Each c In Range("E1:E10138")
             If c.Value = 1 Then
                 If ActiveCell.Offset(-1, 0).Value = string1 Or string2 Then
                    ActiveCell.Offset(2, 0).Value = "True"
                 End If
             End If
         Next
    End Sub
    

    最佳答案

    多个 if 条件总是必须完整地写出来,即使感觉像是在重复自己。

    改变这个:

    If ActiveCell.Offset(-1, 0).Value = string1 Or string2 Then
        ActiveCell.Offset(2, 0).Value = "True"
    End If
    

    对此:
    If c.Offset(0, -1).Value = string1 Or c.Offset(0, -1).Value = string2 Then
        c.Offset(0, 2).Value = "True"
    End If
    

    编辑:刚刚意识到行和列也被颠倒了。偏移量的语法是 Offset(Rows,Columns)。所以要向左走,您将负数放在第二个参数而不是第一个参数中。

    关于vba - 如果多个条件匹配,则返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33551149/

    相关文章:

    excel - 验证最小和最大数字之间的输入框条目

    excel - 如何让 "C"列中的图像 URL 在 Excel 中的 "N"列中显示其对应的图像?

    javascript - 使用 javascript 将 Json 转换为 Excel 文件

    vba - 如何清除 Excel VBA 中的静态变量?

    vba - 循环范围,一旦找到值,复制单元格值和下面的所有内容并移动到下一列

    validation - 日期验证 : Setting minimum and maximum date in a Textbox

    vba - 从宏中排除第一行

    Java POI使用Maven资源过滤器时出现InvalidOperationException

    Excel VBA 宏来抓取网页。无法编码以单击 html 按钮

    php - 使用 PHPExcel 处理 .xls 获取 OOM