使用If然后与多个或运营商的日期
问题描述:
我试图创建Vba编码的If函数与多个或运营商。使用If然后与多个或运营商的日期
我希望它在范围C10和C12中搜索整个工作簿。如果它在C10中找到“否”,或者如果日期匹配或日期已经超过C12中的日期,我希望它将表单名称返回到范围A8。但是,如果C12没有日期,我不希望它返回。
这是我到目前为止有:
Dim MRow As Long
MRow = 8
With wsAddPatient
For Each ws In ActiveWorkbook.Worksheets
If ws.Range("C10").Value = "No" Or ws.Range("C12").Value = Date And ws.Range("C12").Value > 0 Then
.Cells(MRow, 1).Value = ws.Name
MRow = MRow + 1
End If
Next
End With
更新决赛:
Dim MRow As Long
MRow = 8
With wsAddPatient
For Each ws In ActiveWorkbook.Worksheets
If (ws.Range("C10").Value = "No" _
Or (ws.Range("C12").Value <= Date) _
And ws.Range("C12").Value > 0) Then
.Cells(MRow, 1).Value = ws.Name
MRow = MRow + 1
End If
Next
End With
答
假设你的意思是今天的日期已达到或C12通过;
If (ws.Range("C10").Value = "No" _
Or ws.Range("C12").Value <= Date) _
And IsDate (ws.Range("C12").Value) Then
而且,我会用with
块摆脱ws
不wsAddPatient
因为你使用后者只有一次,所以它根本不会救你的任何代码。但是这对ws
有帮助:
Dim MRow As Long
MRow = 8
With ws
For Each ws In ActiveWorkbook.Worksheets
If (.Range("C10").Value = "No" _
Or .Range("C12").Value >= Date) _
And IsDate (ws.Range("C12").Value) Then
AddPatient.Cells(MRow, 1).Value = .Name
MRow = MRow + 1
End If
Next
End With
+0
稍作修改后,我能够得到它。谢谢你的帮助! – Alonso4077
错误在哪里?当你说日期匹配时,你的意思是今天的日期吗? –
错误是,我无法让它返回过去的日期值 – Alonso4077