|
▼k さん:
こんばんは。
>ichinoseさん、どうもありがとうございます!
>うまく整理することができました。
>
>ただ、下のような結果になったものがあります。
>
>元データ
>注番 部番 日付A 日付B
>1 あ 2005/7/6 2005/7/1
>1 あ 2005/7/1 2005/6/30
>1 あ 2005/6/30 2005/6/27
>1 あ 2005/6/27 2005/6/30
>
>
>実行結果
>注番 部番 日付1 日付2 日付3 日付4 日付5
>1 あ 2005/7/6 2005/7/1 2005/6/30 2005/6/27
>
>
>日付5に"2005/6/30"と入るはずなのですが、入りません。
>前の日付とダブっているからなのでしょうか。。。
そうです。そういう仕様で作りました。
実は、最初にk さんが投稿された内容、私は殆ど理解できませんでした。
2回目の投稿から私なりに規則性を探して記述したコードだったのですが、
仕様が違うみたいですね!!
'================================================
Function get_num_value(rng As Range, sushiki) As Variant
Dim clct As New Collection
get_num_value = False
With rng
.Formula = sushiki
On Error Resume Next
Set ansrng = .SpecialCells(xlCellTypeFormulas, xlNumbers)
If Err.Number = 0 Then
Err.Clear
cnt = 0
For Each cr In ansrng
If cnt + 1 < ansrng.Count Then
clct.Add cr.Value, Str(cr.Value)
Else
addvalue = cr.Value
End If
cnt = cnt + 1
Next
ReDim ans(1 To clct.Count + 1)
For idx = 1 To clct.Count
ans(idx) = clct.Item(idx)
Next
ans(clct.Count + 1) = addvalue
get_num_value = ans()
End If
.ClearContents
End With
Set clct = Nothing
End Function
get_num_valueを上記に差し替えてみて下さい。
Mainは、前回と同じです。
|
|