VLOOKUP通过日期和复制值

时间:2014-12-26 07:22:55

标签: excel vba excel-vba

我在价格工作表中有一张表,其中包含价格和日期。我正在尝试使用VLOOKUP和VBA来查找与1月相关的价格,然后将这些价格复制到另一个工作表上。但由于日期是DATE格式,我坚持使用VBA代码。

例如

A列显示日期 B栏显示价格。 可能会在不同日期显示价格,例如2014年1月1日或02/01/2011等

我想复制1月份的价格。

1 个答案:

答案 0 :(得分:0)

您可以使用此功能,但只考虑1月份的价格。它很容易让它在所有月份都能正常工作,但我不确定你是怎么想要这样做的。无论一年中的哪一年,这都会夺走整个一月。如果你想要添加年份,你只需要嵌套另一个IF语句。制作第一个IF年和第二个月。

Sub MonthFromDate()

Dim tempMonth As Long
Dim tempDate As Date
Dim lastSourceRow As Long, tRow As Long
Dim source As String, target As String

source = "Prices"             'Source Sheet Name is set here
target = "Annual Prices"      'Target Sheet
tRow = Sheets(target).Range("A" & Rows.count).End(xlUp).row + 1
lastSourceRow = Sheets(source).Range("A" & Rows.count).End(xlUp).row

For lRow = 2 To lastSourceRow        'Start looping through source sheet at Row 2 for Headers
    tempDate = Sheets(source).Cells(lRow, 1)
    tempMonth = Month(tempDate)

    If tempMonth = 1 Then      'This is where you would insert a VARIABLE for 1.
        Sheets(target).Cells(tRow, 1).Value = Sheets(source).Cells(lRow, 1).Value
        Sheets(target).Cells(tRow, 2).Value = Sheets(source).Cells(lRow, 2).Value
        tRow = tRow + 1
    End If
Next lRow
End Sub

Prices Annual Prices