[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シート名をテーブルで指定した順番に並べ替えたい』(しのみや)
教えてください
【テーブル】 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.