2016-03-28 16 views
-1

我有一个现有的宏,将费用数据填充到列KM中的三个相邻单元格(对于〜300行)想要复制这些单元格中的数据(相同顺序)并根据位于列AA中的短日期的月份值粘贴特殊值。复制的数据需要粘贴到与源相同的行中,但是N-Y列(标题= Jan,Feb,March,Apr ... Dec)。有没有代码可以做到这一点?根据列AA中的短日期将3个单元格/ 3列中的数据移动到具有全年月度标题的相邻列中

example below

Column| K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | 
Header| $ | $ | $ | J | F | M | A | M | J | J | A | S | O | N | D |FY |Date| 
Row 3 |978|540|395|-->|-->|978|540|395| | | | | | | |1913|5/11| 
Row 4 |841|779|120|-->|-->|-->|-->|841|779|120| | | | | |1740|7/24| 
Row 5 |682|557| 55|-->|-->|-->|-->|-->|-->|682|557| 55| | | |1294|9/18|     ' Row 6 |985|883|578|-->|-->|-->|-->|-->|-->|-->|-->|->|985|883|578|2446|12/2| 
+0

你应该张贴一个例子电子表格或东西来说明所期望的行为。 – ScheissSchiesser

+0

不幸的是,我还没有获得发布图片的权利。 – Shrewd1

+0

您可以使用格式工具来创建具有示例数据的表格。我相信堆栈溢出使用降价。 – ScheissSchiesser

回答

0

试试这个:

Sub MoveData() 
    Dim vals As Range, val As Range, colOffset As Integer 

    Set vals = Range("K2:K" & Range("K2").End(xlDown).Row) 

    For Each val In vals 
     If val > 0 Then 
      colOffset = VBA.month(val.offset(0, 16)) 
      val.offset(0, colOffset) = val 
      val.offset(0, colOffset + 1) = val.offset(0, 1) 
      val.offset(0, colOffset + 2) = val.offset(0, 2) 
     End if 
    Next val 
End Sub 
+0

它工作的很好,但是在没有费用数据的行上,它会填充这些列的W-Y(Oct-Dec)列? – Shrewd1

+0

查看我的更新后的代码 - 如果列K中有费用数据,现在只会填充数据 –

+0

列KM默认具有“$ 0”,并且正在选择它并填充WY(Oct-Dec)列,但不包含在NV。有没有办法让列“N-Y”空白,如果不是> $ 0,并且宏可以立即运行? – Shrewd1

相关问题