Vba 多重条件
我在尝试比较列交叉表时出现“object不支持此方法”错误。如果表1中的A列和B列与表2中的A列和B列都匹配,则将在表3中显示匹配项Vba 多重条件,vba,excel,Vba,Excel,我在尝试比较列交叉表时出现“object不支持此方法”错误。如果表1中的A列和B列与表2中的A列和B列都匹配,则将在表3中显示匹配项 您的代码中存在许多问题。以后,请发布实际代码(不是截图) 注意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