复制和转置粘贴许多记录优秀

时间:2017-08-09 04:34:04

标签: excel-vba vba excel

我已经尝试了一切,这似乎不起作用。我有一个电子表格,其中垂直第一列的数据需要水平转置。OriginalData up to 5000 records

And I'd like it to be arranged like this:

完成这项工作的最快方法是什么?

编辑:我能够使用以下宏暂时解决我的问题:

Sub CopyTranspose()

Application.ScreenUpdating = False
Dim LastRow, x, y As Long

LastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
y = 3

For x = 2 To LastRow Step 48
    Range(Cells(x, 4), Cells(x + 47, 2)).Copy
    Sheets("Sheet1").Cells(y, 2).PasteSpecial Transpose:=True
    y = y + 1
Next x
Application.CutCopyMode = False
Application.ScreenUpdating = True

End Sub

上述解决方案假设所有日子都是统一的,有48个时间间隔。但现在我需要一个更具动态性的宏:一个可以找到日期的宏1/1/17并将其与间隔时间和总数相匹配。因此,也就是说,间隔少于48的天数(例如夏令时缺少一小时)将在缺失的凌晨2点至凌晨3点间返回0(或空值)。

任何想法?

1 个答案:

答案 0 :(得分:1)

 dim r as range
 set r = your range here
 r.copy
 range(your destination).PasteSpecial Transpose:=True