|    | 
     ▼シンク さん: 
こんにちは〜 
もっといい方法があるかもしれませんが、作業列を使った方法です。 
元の表を A列の値が時間データ以外のとき、上の時間データをコピー 
したものに変更した配列を 作業列(C列) に貼り付け、この列をキーに 
ソートします。 
 
(ソート直前) 
 A列   B列        C列   
9:00  メール受信。      0.375 
1212  AAABBBCCCDDDEEE  0.375 
1212  FFFGGGHHHIIIJJJ    0.375 
                 0.375 
  メール受信。         0.375 
1213  AAABBBCCCDDDEEE  0.375 
1213  FFFGGGHHHIIIJJJ   0.375 
                0.375 
8:12  メール受信。      0.341666667 
1214  AAABBBCCCDDDEEE  0.341666667 
1214  FFFGGGHHHIIIJJJ    0.341666667 
                 0.341666667 
  メール受信。         0.341666667 
1215  AAABBBCCCDDDEEE  0.341666667 
1215  FFFGGGHHHIIIJJJ    0.341666667 
                 0.341666667 
6:12  メール受信。      0.258333333 
1214  AAABBBCCCDDDEEE  0.258333333 
1214  FFFGGGHHHIIIJJJ    0.258333333 
                 0.258333333 
 
Sub Try1() 
 Dim v, u, i As Long 
 Dim r As Range 
 Set r = Range("A1", Cells(Rows.Count, 1).End(xlUp).Offset(1)) 
 v = r.Value2 
 For i = 1 To UBound(v) 
   If v(i, 1) > 0# And v(i, 1) < 1# Then 
     u = v(i, 1) 
   Else 
     v(i, 1) = u 
   End If 
 Next 
 r.Offset(, 2).Value = v 
 r.Resize(, 3).Sort r.Columns(3), Header:=xlNo 
 Stop 
 Columns(3).Clear 
  
End Sub 
 
 | 
     
    
   |