Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 多重条件_Vba_Excel - Fatal编程技术网

Vba 多重条件

Vba 多重条件,vba,excel,Vba,Excel,我在尝试比较列交叉表时出现“object不支持此方法”错误。如果表1中的A列和B列与表2中的A列和B列都匹配,则将在表3中显示匹配项 您的代码中存在许多问题。以后,请发布实际代码(不是截图) 注意if语句中的“和”和“vs”&” 变量中的“.value”不是“.value” “像线一样暗”因为我们在用手机 “工作表。”而不是“工作表” 我不认为你需要一套来做这些。(可能是错的) 试试下面的代码,它适合我。您可能需要修改写入“匹配”表的行 您的代码中存在许多问题。以后,请发布实际代码(不是截图)

我在尝试比较列交叉表时出现“object不支持此方法”错误。如果表1中的A列和B列与表2中的A列和B列都匹配,则将在表3中显示匹配项


您的代码中存在许多问题。以后,请发布实际代码(不是截图)

  • 注意if语句中的“和”和“vs”&”
  • 变量中的“.value”不是“.value”
  • “像线一样暗”因为我们在用手机
  • “工作表。”而不是“工作表”
  • 我不认为你需要一套来做这些。(可能是错的)
  • 试试下面的代码,它适合我。您可能需要修改写入“匹配”表的行


    您的代码中存在许多问题。以后,请发布实际代码(不是截图)

  • 注意if语句中的“和”和“vs”&”
  • 变量中的“.value”不是“.value”
  • “像线一样暗”因为我们在用手机
  • “工作表。”而不是“工作表”
  • 我不认为你需要一套来做这些。(可能是错的)
  • 试试下面的代码,它适合我。您可能需要修改写入“匹配”表的行


    请不要发布代码的截图。将代码粘贴到问题中,突出显示并使用
    {}
    按钮格式化。如果a=b和c=d,则需要使用
    ,然后使用
    <代码>&
    是VBA中的串联运算符。请不要发布代码的屏幕截图。将代码粘贴到问题中,突出显示并使用
    {}
    按钮格式化。如果a=b和c=d,则需要使用
    ,然后使用
    &
    是VBA中的串联运算符。变量a到d可以是数字。除非知道它们是文本,否则最好将它们声明为变体。
    Set
    关键字必须与范围等对象一起使用<代码>设置a=工作表(“sheet1”)。范围(“a1”)。值
    将导致“需要对象”错误,因为
    不是对象
    Set a=Worksheets(“sheet1”)。如果
    a
    被声明为原来的范围,则范围(“a1”)
    将范围对象分配给变量
    a
    。比较
    a=b
    而两者都是范围可能会起作用,因为Value属性是范围对象的默认值,但它的语法非常糟糕。
    c
    将需要保留为
    range
    对象,以便OP使用
    c.Offset(0,2).Value
    进行赋值将起作用(您的代码只是使用
    c
    )Great points@Variatus来设置最终赋值。我已经阅读了一段时间了。变量a到d可以是数字。除非知道它们是文本,否则最好将它们声明为变量。
    Set
    关键字必须与对象一起使用,例如范围。
    Set a=工作表(“sheet1”).Range(“a1”).Value
    将导致“需要对象”错误,因为
    .Value
    不是对象。
    设置a=工作表(“sheet1”).Range(“a1”)如果
    a
    被声明为原来的范围,则
    将把范围对象分配给变量
    a
    。比较
    a=b
    虽然两者都是范围,但可能会起作用,因为Value属性是范围对象的默认值,但语法非常糟糕。
    c
    将需要保留为
    range
    对象,以便OP的赋值使用
    c.Offset(0,2).Value
    将起作用(您的代码只是使用
    c
    设置最终赋值)伟大的点@Variatus。我已经阅读了一段时间了。
    Sub find()
    
    Dim a As String
    Dim b As String
    Dim c As String
    Dim d As String
    
    a = Worksheets("sheet1").Range("a1").Value
    b = Worksheets("sheet2").Range("a1").Value
    c = Worksheets("sheet1").Range("b1").Value
    d = Worksheets("sheet2").Range("b1").Value
    
    If a = b And c = d Then
    
    Worksheets("match").Range("A65536").End(xlUp).Offset(1, 0).Value = c
    Worksheets("match").Range("A65536").End(xlUp).Offset(0, 1).Value = c
    
    End If
    End Sub