Excel 如果VBA有多个条件

Excel 如果VBA有多个条件,excel,if-statement,multiple-conditions,vba,Excel,If Statement,Multiple Conditions,Vba,我的VBA代码和指令有问题如果,我必须使用多条件,但是如果我将条件4检查为true,VBA总是忽略其他条件 ((条件1)或(条件2))和(条件3或条件4) 需要宏只接受指定的选项: ((对)或(错))和(对或错) ((真)或(假))和(真或真) ((假)或(真))和(真或假) ((假)或(真))和(真或真) 这是真实的代码: If ((raport_glowny.Cells(i, R_delivedate_C).Value = CDate(Arkusz6.DeliveryDaySMS)) _ A

我的VBA代码和指令有问题如果,我必须使用多条件,但是如果我将条件4检查为true,VBA总是忽略其他条件

((条件1)或(条件2))和(条件3或条件4)

需要宏只接受指定的选项:

((对)或(错))和(对或错)
((真)或(假))和(真或真)
((假)或(真))和(真或假)
((假)或(真))和(真或真)

这是真实的代码:

If ((raport_glowny.Cells(i, R_delivedate_C).Value = CDate(Arkusz6.DeliveryDaySMS)) _
And (raport_glowny.Cells(i, R_deliverytime_C).Value >= CDate(Arkusz6.DeliveryHourSMS.Value))) _
Or ((raport_glowny.Cells(i, R_delivedate_C).Value = CDate(Arkusz6.DeliveryDaySMS) + 1) _
And (raport_glowny.Cells(i, R_deliverytime_C).Value < CDate(Arkusz6.DeliveryHourSMS.Value))) _
And ((raport_glowny.Cells(i, R_deliverytime_C).Value > 0) _
Or (Arkusz6.cbSMSforecast = True)) Then
If((raport\u glowny.Cells(i,R\u deliveredate\u C).Value=CDate(Arkusz6.DeliveryDaySMS))_
和(raport_glowny.Cells(i,R_deliverytime_C).Value>=CDate(Arkusz6.DeliveryHourSMS.Value)))_
或者((raport_glowny.Cells(i,R_deliveredate_C).Value=CDate(Arkusz6.DeliveryDaySMS)+1)_
和(raport_glowny.Cells(i,R_deliverytime_C).Value0)_
或者(Arkusz6.cbsmsfecast=True))然后

如果有人能帮助我,我将非常感激

这四个条件是什么?根据您的
IF
-语句,我将它们解释为
condition1=CBool([raport\u glowny.Cells(I,R\u deliveredate\u C)=Date(Arkusz6.DeliveryDaySMS)]
condition2=CBool([raport\u glowny.Cells(I,R\u deliverytime\u C>=CDate(Arkusz6.DeliveryHourSMS)])
condition3=CBool([raport\u glowny.Cells(I,R\u deliverytime\C(Arkusz6.DeliveryHourSMS)]
,和
条件4=CBool([raport\u glowny.Cells(i,R\u deliverytime\u C.Value>0])
。这是否正确?您说“如果条件4为真,则忽略其他条件”,但下面的条件是可接受的其中条件4为假。是哪一个?我注意到条件3总是真的。那么(真或真)和(真或真)呢这是一个潜在的解决方案吗?也可以给出样本数据和预期结果。你现在的基本上是这样的:<代码>如果第一次检查或第二次检查和第三次检查,那么…显然这是括号中的问题。你可以考虑把这些布尔值分解成函数,以便更容易读取,然后把它放进去。然后一起确认。另外,我不完全理解
(TRUE或TRUE)
作为最后一个条件。@eirikdaude,`condition1=((raport_glowny.Cells(I,R_deliveredate_C).Value=CDate(Arkusz6.DeliveryDaySMS))和(raport_glowny.Cells(I,R_deliverytime_C.Value>=CDate(Arkusz6.DeliveryHourSMS.Value)),condition2=((raport_glowny.Cells))(i,R_deliveredate_C).Value=CDate(Arkusz6.DeliveryDaySMS)+1)和(raport_gloweryny.Cells(i,R_deliverytime_C).Value0),条件4=(Arkusz6.cbsmsfecast=True)