[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ひとつのワークシートをある条件で複数シートに分割したい』(ごんたけ)
>どなたか方法を教えてください。 方法としては、マクロになると思います。 だが、そのためには情報がもう少し必要になってくるでしょう。 >そこの1列には商品番号がありまして その1列は、何処の列でしょう? どのようなシート構成で、どのように抽出したいのか・・・などなど ただ、、、 個人的には、シートの量産には賛成できませんので、代案をば そのシートを、オートフィルタでフィルタをかける事で、希望の商品番号のみを画面に出すことが出来ます。 せっかくのデータベースです。 わざわざシートを分割する必要は無いと思います。 (キリキ)(〃⌒o⌒)b もう寝ます〜zzzZ
Excel2003なら、ピボットテーブルの「ページの表示」が使用できると思います ただ、集計をする為の機能ですのでご希望通りの形になるかどうかは不明です(^_^;)
ピボットテーブルの編集「ページエリアへの配置」 http://hamachan.fun.cx/excel/piboto2.html
(Ohagi)
パラメータ1 パラメータ2 結果1 特性番号
1.226 35.13228 0.664 4003 1.25 16.66667 0.25 4003 2.29 28.21317 0.9 4002 0.04 0 0 4002 4.01 42.63233 2.98 4004 3.177 20.17588 0.803 4004 1.76 34.57249 0.93 4005 3.669 20.06536 0.921 4005 1.62 29.56522 0.68 4005
このようなシートで、行数が5000行ほどあります。
これを特性番号別に同一ファイル内でシートを分けたいのですが。
できればシート名に特性番号入れたいです。
お教えいただければ助かります。
試してください...
Sub test() Dim dic As Object, a, i As Long, ii As Integer Dim w(), x, y, ws As Worksheet Set dic = CreateObject("Scripting.Dictionary") a = Sheets("Sheet1").UsedRange.Value For i = 2 To UBound(a,1) If Not IsEmpty(a(i,4)) Then If Not dic.Exists(a(i,4)) Then Redim w(1 To UBound(a,2), 1 To 1) For ii = 1 To UBound(a,2) : w(ii,1) = a(i, ii) : Next dic.add a(i,4), w Else w = dic(a(i,4) ReDim Preserve w(1 To UBound(w,1), 1 To UBound(w,2) + 1) For ii = 1 To UBound(a,2) w(ii,UBound(w,2)) = a(i,ii) Next dic(a(i,4)) = w End If End If Next x = dic.Keys : y = dic.items : Erase a For i = 0 To UBound(x) On Error Resume Next Set ws = Sheets(x(i)) If ws Is Nothing Then Set ws = Sheets.Add.Name = x(i) On Error GoTo 0 ws.Cells.Clear ws.Range("a1").Resize(UBound(y(i),2), UBound(y(i),1)).Value = _ Application.Transpose(y(i)) Next Set ws = Nothing End Sub (seiya)
もう一度試してもらえますか? (seiya)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.