重新安排数据

时间:2018-09-11 09:26:19

标签: excel vba

我有数据集,问题陈述相当简单,但是对于像我这样的菜鸟来说并没有解决。

数据如下所示。两个日期列表之间可能有空格,也可能没有空格。列表的长度是可变的。

  • 日期1
  • 第1号订单
  • 订单号2

  • 日期2

  • 订单号3
  • 订单号4
  • 订单号5

以此类推,直到大约100为止。

必填输出:

  • 订单号1日期1
  • 订单号2日期1
  • 订单号3日期2
  • 订单号4日期2
  • 订单号5日期2

以此类推。

预先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

假设您在A列中有该列表,则可以使用

Sub ReArrangeValues()
    Dim lrow As Integer
    Dim CheckValRow As Integer
    Dim CheckValCol As Integer
    Dim DateValStore As Date
    Dim DateValRow As Integer
    Dim DateValCol As Integer
    Dim ColName As String

    lrow = Cells(rows.Count, 1).End(xlUp).Row
    For i = 1 To lrow
        If Not IsDate(Cells(i, 1).Value) Then
        Cells(i, 1).Offset(0, 1).Value = Cells(i, 1).Value
        Cells(i, 1).Value = DateValStore
            If IsEmpty(Cells(DateValRow, DateValCol)) Then
            'Do Nothing
            Else
            Cells(DateValRow, DateValCol).Clear
            End If
        Else
        DateValStore = Cells(i, 1).Value
        DateValRow = Cells(i, 1).Row
        DateValCol = Cells(i, 1).Column
        Cells(DateValRow, DateValCol).Clear

        End If
        CheckValRow = Cells(i, 1).Row
        CheckValCol = Cells(i, 1).Column
    Next i


    For j = lrow To 1 Step (-1)
        If WorksheetFunction.CountA(rows(j)) = 0 Then
        rows(j).Delete
        End If
    Next j

    End Sub