我有一个写有宏的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 / MATCH,但我是新手,我确信有一些小东西我正在搞砸:
=INDEX(PS250-'1EngineHours'!D2:D13,MATCH(E151,UnitProfile!G151:G170,0))
答案 0 :(得分: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
只是为了让它更整洁