[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シートの並び替え』(くぅー)
「提出シート」「データシート」・・・の順番で、50枚ほどあり
これを、並び替えをしたいのですが何かいい方法を教えてください。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
いずれの場合でも、全シート名を抜き出し、別シートまたは配列上で並び替え、それを元にシート移動するマクロを書けば良いと思います。 難易度はシート名のルール次第。
(???) 2018/06/06(水) 17:43
どんな基準で並べ替えするのでしょう?
セルにシート名一覧を作ってエクセルの並び替え機能で並び替えられる順番でいいのかなぁ?
(まっつわん) 2018/06/06(水) 19:47
返信遅くなりました。
「提出シート1」「データシート1」「提出シート2」「データシート2」・・・・
と、各提出シート1枚につきデータシートは1枚です。
「提出シート1」「データシート1」の1セットとして1〜順番に並べ替えたいです。
まっつわん 様 ???様
はい、シート名一覧を、作成してそれで並び替えが出来るのであればそのやり方を
知りたいです。
(くぅー) 2018/06/09(土) 18:33
>「提出シート1」「データシート1」の1セットとして1〜順番に並べ替えたいです。
データシート1 データシート2 提出シート1 提出シート2
シート上で名前を並び替えたらこうなるので、
ちょっと、僕では難しいですね^^;
他の方の回答をお待ちください。
(まっつわん) 2018/06/09(土) 18:46
>「提出シート1」「データシート1」の1セットとして1〜順番に並べ替えたいです。
Sub test() Dim ws As Worksheet, temp As String, myNum As Long Dim i As Long, ii As Long, SL As Object Set SL = CreateObject("System.Collections.SortedList") With CreateObject("VBScript.RegExp") .Pattern = "(.+[^0-90-9])([0-90-9]+)$" For Each ws In Worksheets temp = ws.Name If .test(temp) Then myNum = Val(StrConv(.Execute(temp)(0).submatches(1), 8)) temp = .Execute(temp)(0).submatches(0) If Not SL.Contains(myNum) Then Set SL(myNum) = CreateObject("System.Collections.SortedList") End If SL(myNum)(temp) = ws.Name End If Next End With For i = SL.Count - 1 To 0 Step -1 For ii = 0 To SL.GetByIndex(i).Count - 1 Sheets(SL.GetByIndex(i).GetByIndex(ii)).Move before:=Sheets(1) Next Next End Sub (seiya) 2018/06/09(土) 19:20
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.