
'每个店名之间空一行,否则还要修改一下的
Option Explicit
Sub abc()
Dim a, i, j, k, m, p, cnt
a = Range("a2:f" & Cells(Rows.Count, "c").End(xlUp).Row + 1).Value
ReDim b(1 To UBound(a), 1 To UBound(a, 2)), pos(1 To UBound(a), 1 To 3)
For i = 1 To UBound(a)
If Len(a(i, 3)) = 0 Then
m = m + 1
pos(m, 1) = a(p + 1, 1): pos(m, 2) = p + 1: pos(m, 3) = i
p = i
End If
Next
Call bsort(pos, 1, m, 1, 3, 1)
For i = 1 To m
For j = pos(i, 2) To pos(i, 3)
cnt = cnt + 1
For k = 1 To UBound(b, 2)
b(cnt, k) = a(j, k)
Next
Next
Next
[h2].Resize(cnt, UBound(b, 2)) = b
End Sub
Function bsort(a, first, last, left, right, key)
Dim i, j, k, t
For i = first To last - 1
For j = first To last + first - 1 - i
If a(j, key) > a(j + 1, key) Then
For k = left To right
t = a(j, k): a(j, k) = a(j + 1, k): a(j + 1, k) = t
Next
End If
Next
Next
End Function