|
kanabun氏
返信遅くなり申し訳ありません。
下記を実施してみたところ、
最終行を取得の際
> Else
> v(i + 1, 1) = u
実行エラー9 インデックスが有効範囲にありません。
実際には下記のような形なのですが、
9:00 メール受信。
1212 AAABBBCCCDDDEEE
1212 FFFGGGHHHIIIJJJ
10:12 メール受信。
1214 AAABBBCCCDDDEEE
1214 FFFGGGHHHIIIJJJ
数式では2012/2/3 09:00:00、2012/2/1 10:12:00になっています。
日付が入ってしまっていることが原因でしょうか。
お手数をかけて申し訳ありませんが、
よろしくお願いします。
▼kanabun さん:
>▼シンク さん:
>
>>以前記載していただいたソースでソートをした場合
>>日付を跨いだ際に時間が逆になってしまうことです。
>
>直前の Try3() 方式でトライしてみてください。
>
>Sub Try3b()
> Dim s, u, v, i As Long
> Dim r As Range
> Const CLSID_DataObject = "1C3B4210-F441-11CE-B9EA-00AA006B1A69"
>
> Set r = Range("A1", Cells(Rows.Count, 1).End(xlUp).Offset(1))
> v = r.Value2
> r.Copy
> With GetObject("new:" & CLSID_DataObject)
> .GetFromClipboard
> s = Split(.GetText(1), vbCrLf)
> End With
> Application.CutCopyMode = 0
>
> For i = 0 To UBound(s)
> If InStr(s(i), ":") > 0 Then ' dataに 「:」があるか?あれば date
> u = v(i + 1, 1)
> Else
> v(i + 1, 1) = u
> End If
> Next
> r.Offset(, 2).Value = v
> Stop
> r.Resize(, 3).Sort r.Columns(3), Header:=xlNo
> Columns(3).Clear
>
>End Sub
|
|