选择范围内的单元格以根据另一个范围中的日期导入

时间:2019-04-16 20:36:04

标签: excel vba

我正在尝试将数据从源工作簿导入到新工作簿中。来源在单元格A11中具有“今天的日期”。范围A13:A1300的日期早于今天的日期,直到今天为止,直到今天为止。

我想扫描源范围A13:A1300中的日期,如果它们早于今天的日期,那么我想将数据从源范围D13:F1300复制/导入到新工作簿中。 D13:F1300中将有今天日期的未来数据(基于范围A13:A1300)。如果这是将来的日期,那么我想忽略/不复制/不从源D13:F1300导入数据-因此,我想保持范围D13:F1300的将来范围内任何日期的目标值完整A13:A1300

在下面的代码可以正常工作的意义上,不会触发任何错误并且可以复制数据,但是无论日期如何,它都会复制所有内容。我也尝试了下面的代码,但没有使用“ Else”,但仍然可以正常工作,但是随后正确复制了具有范围的某些单元格,而有些则没有,并且仍然复制了超出日期范围的单元格。如果有人可以提出建议,将不胜感激。

谢谢!

    Sub TransferData()
If Workbooks.Count > 1 Then

'For HELOC tab
Dim rngSrc As Range
Dim rngDest As Range
Dim rngSDate As Range
Dim i As Long
Dim cS As Range
Dim cD As Range
Dim cT As Range
Dim M As String

Set rngSrc = Workbooks("SourceBookData.xlsx").Worksheets("HELOC").Range("D13:F1300")
Set rngDest = Workbooks(1).Worksheets("DestinationTab").Range("D13:F1300")
Set rngSDate = Workbooks("SourceBookData.xlsx").Worksheets("HELOC").Range("A13:A1300")
M = Date  'Also tried: M = Workbooks("SourceBookData.xlsx").Worksheets("HELOC").Range("A11")

For i = 1 To rngSrc.Cells.Count
Set cS = rngSrc.Cells(i)
Set cD = rngDest.Cells(i)
Set cT = rngSDate.Cells(i)
If cT < M Then
cD.Value = cS.Value
Else
cD.Value = cD.Value
End If
Next i

Workbooks(2).Close savechanges:=False

End Sub

0 个答案:

没有答案