VBA查找字符串然后比较日期



尝试比较日期,如果列G="是";然后比较";C"&要在指定的范围内复制的RowNumber,但似乎什么都没发生。

Dim wb As Workbook
Dim range1 As Range
Dim CellValue As Range, CellValues As Range
Dim RowNumber As Integer, ColumnLetter As String, ColumnNumber As Integer
Set wb = ActiveWorkbook
Set range1 = wb.Sheets("Evals (P)").Range("A5:H10")
For Each CellValue In range1

RowNumber = CellValue.Row

If CellValue.Range("G" & RowNumber).Value = "Yes" Then

If CellValue.Range("C" & RowNumber).Value >= DateValue("A4") Then

ws1.Range("A283", "H283").Value = CellValue.Range("A" & RowNumber, "H" & RowNumber)                                                                            

ElseIf CellValue.Value = "No" Then

End If
End If

Next CellValue

正如评论中所指出的,CellValue.Range会引起麻烦,我建议您测试一下:

Dim wb As Workbook
'Dim range1 As Range
'Dim CellValue As Range, CellValues As Range
Dim RowNumber As Integer, ColumnLetter As String, ColumnNumber As Integer
Dim ws1 As Worksheet
Set wb = ActiveWorkbook
'Set range1 = wb.Sheets("Evals (P)").Range("A5:H10")
Set ws1 = wb.Sheets("Evals (P)")
For RowNumber = 5 To 10

'RowNumber = CellValue.row

If ws1.Range("G" & RowNumber).Value = "Yes" Then

If ws1.Range("C" & RowNumber).Value >= DateValue(ws1.Range("A4")) Then

ws1.Range("A283", "H283").Value = ws1.Range("A" & RowNumber, "H" & RowNumber).Value

ElseIf ws1.Range("G" & RowNumber).Value = "No" Then

End If
End If

Next
'
Set ws1 = Nothing
Set wb = Nothing

最新更新