Excel 是否有一种简单的粘贴宏,通过匹配日期粘贴到单元格上?

Excel 是否有一种简单的粘贴宏,通过匹配日期粘贴到单元格上?,excel,vba,Excel,Vba,我有一个excel工作簿,上面写着一个宏。它从一张纸上获取信息并粘贴到另一张纸上。但是,每个月数据范围都会发生变化。目前正在跟踪12个月的滚动。因此,本月为2月,我们使用2014年2月至2015年1月的数据 也就是说,两张纸上都有当前日期。是否有一种方法可以添加到预先存在的宏中,以将其粘贴到与正确日期范围对齐的正确单元格中。或者将数据12行粘贴到当前月份范围的另一张表中 Sub Paste_to_UnitProfile() ' ' Paste_to_UnitProfile Macro ' '

我有一个excel工作簿,上面写着一个宏。它从一张纸上获取信息并粘贴到另一张纸上。但是,每个月数据范围都会发生变化。目前正在跟踪12个月的滚动。因此,本月为2月,我们使用2014年2月至2015年1月的数据

也就是说,两张纸上都有当前日期。是否有一种方法可以添加到预先存在的宏中,以将其粘贴到与正确日期范围对齐的正确单元格中。或者将数据12行粘贴到当前月份范围的另一张表中

Sub Paste_to_UnitProfile()
'
' Paste_to_UnitProfile Macro
'

'
    Range("D2:D13").Select
    Selection.Copy
    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
    Sheets("Unit Profile").Select
    Range("G151").Select
    ActiveSheet.Paste

End Sub
我正在添加我尝试在上面使用的索引/匹配,但我是新手,我确信有一些小问题我正在搞砸:

=INDEX(PS250-'1EngineHours'!D2:D13,MATCH(E151,UnitProfile!G151:G170,0))

我将把它添加到开头,以获取要读取的最后一行和要写入的第一行

i = 1
Do Until IsEmpty(Cells(i, 4).Value)
    i = i + 1
Loop
StartRead = i - 12
EndRead = i - 1

i = 9
Do Until Sheets("Unit profile").Cells(i, 4).Value = Sheets("Unit profile").Cells(5, 2).Value
        i = i + 1
Loop
StartWrite =  i
然后将粘贴代码更改为:

Range(Cells(StartRead, 4), Cells(EndRead, 4)).Select
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("Unit Profile").Select
Cells(StartWrite, 5).Select
ActiveSheet.Paste
我还要在开头加上:

Application.ScreenUpdating = False
最后:

Application.CutCopyMode = False
Application.ScreenUpdating = True

只是为了让它更整洁一点

甚至可能像每次点击时添加粘贴一行一样简单?也许这将是一个更简单的解决方案。嗨,如果你可以发布一些样本数据,它将更容易帮助。图片已经添加!一个带有INDEXMATCH、VLOOKUP甚至SUMIFS的公式不是比一个宏更合适吗?可能是的,但我没有关于如何进行VLOOKUP的第一条线索。我对这一点比较陌生。我似乎在“待办事项表”上遇到了运行时错误。。。。。。。。。。。。。它能给你更多的信息吗?问题可能是单元格的格式不同,也就是说,2月14日是2015-02-14的日期格式,而另一个“2月14日”是字符串格式。如果是这种情况,最简单的方法当然是更改其中一个单元格的格式。我尝试了这个方法,但不断出现错误:=INDEXPS250-“1EngineHours”!D2:D13,匹配E151,单位简介!G151:G170,0不知道刚才是否输入错误,但在您的文本中,您说工作表名称是Unit Profile,但在此匹配段中,它是UnitProfile。