我必須對Excel進行一些小的修改才能使其正常工作。我使用Excel函數TODAY()替換了Sheet2中的Today,它只返回當前日期。之後這個快速和骯髒的解決方案應該解決您的問題。
Sub checkAndReplace()
Dim currentRowS1, currentRowS2 As Integer
Range("B1:A" + CStr(ThisWorkbook.Worksheets("Sheet1").UsedRange.Count) + ",A1:A" + CStr(ThisWorkbook.Worksheets("Sheet2").UsedRange.Count)).Select
For currentRowS1 = 2 To ThisWorkbook.Worksheets("Sheet1").UsedRange.Count
For currentRowS2 = 2 To ThisWorkbook.Worksheets("Sheet2").UsedRange.Count
If ThisWorkbook.Worksheets("Sheet1").Range("B" & currentRowS1).Text = ThisWorkbook.Worksheets("Sheet2").Range("A" & currentRowS2).Text Then
If DateDiff("d", ThisWorkbook.Worksheets("Sheet1").Range("A" & currentRowS1), ThisWorkbook.Worksheets("Sheet2").Range("B" & currentRowS2)) <= 0 And DateDiff("d", ThisWorkbook.Worksheets("Sheet1").Range("A" & currentRowS1), ThisWorkbook.Worksheets("Sheet2").Range("C" & currentRowS2)) >= 0 Then
ThisWorkbook.Worksheets("Sheet1").Range("C" & currentRowS1).Value = ThisWorkbook.Worksheets("Sheet2").Range("D" & currentRowS2).Value
End If
End If
Next
Next
End Sub
貫穿第一張紙的所有單元格。對於第一張紙中的每個單元格都會遍歷第二張紙上的所有單元格。使用datediff檢查匹配的日期。這不是太棘手。我不知道stackoverflow.com是否適合您的「問題」。此外,我無法打開您的示例文件。它被阻止或者其他;-) –