比较Excel中的单元格,如果它们不相似则在上面添加空白行

时间:2018-02-04 13:49:01

标签: excel vba excel-vba

我收到了许多工作班次的每日清单,通常按照以下格式进行格式化:

0800-2000
0800-2000
0801-2000
0930-2130
0930-2200
1000-2200

等......(每个在不同的行,每次数百个)

我正在尝试编写一个宏/ VBA,通过在每个不同的开始时间之上插入一个空行来对每个START时间进行分组(忽略那些仅相隔1分钟的那些,这些被认为是相同的。)

我想到的概念是截断单元格,只使用LEFT(A3,4)+0将前4个数字转换回整数。将2个变量调整为整数,Value1来自第一行,Value2来自下面的行。然后运行IF语句,其中If Value2 - Value 1> 2然后插入一个空白行(EntireRow.Insert Shift = xlDown我认为是代码,如果错误请更正。)

然后我只需重复整列,直到没有更多的开始时间分开。我想到的是“直到ISNUMBER = FALSE”或者我可以运行宏以获得预定数量的行,我知道这些行总是绰绰有余。

1 个答案:

答案 0 :(得分:1)

这个短宏将做你想要的:

Sub insert()
    Dim n As Long, i As Long, t1 As String, t2 As String

    n = Cells(Rows.Count, 1).End(xlUp).Row
    For i = n To 2 Step -1
        t1 = Split(Cells(i, 1), "-")(0)
        t2 = Split(Cells(i - 1, 1), "-")(0)
        If t1 <> t2 Then Cells(i, 1).EntireRow.insert
    Next i
End Sub

结果:

enter image description here