[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シート名をテーブルで指定した順番に並べ替えたい』(しのみや)
教えてください
【テーブル】 A B C 1 順番 2 いちご 3 りんご 4 メロン 5 もも
【シート】 もも|いちご|メロン
*テーブルにはあって、シート名がない場合があります
このページを参考にさせてもらいました https://vbabeginner.net/vbaでシートを任意の順番で並べ替える/
この記述ですと、 AddSheetの一覧にあって、その名前のシートがない場合エラーになります
Sheets(ar(i)).Move before:=Sheets(i + 1)←エラーになる部分
記載されている記述は、 シート名をAddSheetに書き出す ↓ 手作業で順番を変える ↓ シートを並べ替える ですので、その名前のシートがないケースは当てはまらないので当然です
エラーの場合に、OnErrorで回避はなるべく使いたくないのですが… どういう風に書き換えたらよいか、もしくはこの記述は今回は合わないので使わないほうがよいか等 教えて頂けると助かります
< 使用 Excel:Excel2010、使用 OS:Windows10 >
Sub 実験01() Dim i As Long
With Worksheets("テーブル") On Error Resume Next For i = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row Worksheets(.Cells(i, "A").Value).Move after:=Worksheets(Worksheets.Count) Next i On Error GoTo 0 End With
End Sub
(もこな2) 2020/09/24(木) 13:07
Sub main() Dim c As Range, i As Long For Each c In Sheets("テーブル").Range("A:A").SpecialCells(2) For i = 1 To Sheets.Count If Sheets(i).Name = c.Value Then Sheets(i).Move After:=Sheets(Sheets.Count) Exit For End If Next i Next c End Sub (mm) 2020/09/24(木) 13:08
もこな2さん mmさん 必要な結果が得られました ありがとうございました (しのみや) 2020/10/02(金) 15:00
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.