1つのマクロを一般化して複数のレポートで使用できるようにしようとしています。問題はそれはいつもすべてがあるとは限らないということです。一つはヘッダーがありません。一つは "this one"という列があり、一つは5枚あります。 1.常にすべての行と列のサイズを自動調整します。 2.常に最初の行をフリーズします。 3.ヘッダー行を削除します(ある場合) 4.常にタブをaパターン(赤、青、緑、黄色、オレンジは各シートごとに繰り返します) 5.列名で列のリストを非表示にします(これはレポートのどこにあっても同じです)。 凍結された一番上の行がフィルタリング可能であること(ctrl shift lを押すなど)Excel Vbaマクロはいくつかのものを注文します
私はこれが正しい軌道にあると思いますが、できるだけ最善を尽くしているとは思えません。エラープルーフ(正しいタブ数や列名があれば失敗しないようにする)個々のマクロすべてを次々に呼び出します。
ありがとうございます!
Sub Auto_Size_Columns()
' Autosize the column after filling it all in.
Columns("A:CO").Select
Columns("A:CO").EntireColumn.AutoFit
Range("A1").Select
Selection.AutoFilter
Call Freeze_Top_Panes
End Sub
Sub Freeze_Top_Panes()
Application.ScreenUpdating = False
Rows("2:2").Select
ActiveWindow.FreezePanes = True
Application.ScreenUpdating = True
Call Auto_Size_Columns_Again
End Sub
Sub Auto_Size_Columns_Again()
' Autosize the column after filling it all in.
Columns("A:CO").Select
Columns("A:CO").EntireColumn.AutoFit
Range("A1").Select
Selection.AutoFilter
Call Delete_Header_Row
End Sub
Sub Delete_Header_Row()
'delete the extra header row
Rows("1:1").Select
Selection.Delete shift:=xlUp
Range("A1").Select
Call Tab_Color_Change
End Sub
Sub Tab_Color_Change()
Sheets("Sheet2").Tab.ColorIndex = 3
Sheets("Sheet3").Tab.ColorIndex = 4
Sheets("Sheet4").Tab.ColorIndex = 5
Sheets("Sheet5").Tab.ColorIndex = 6
Sheets("Sheet6").Tab.ColorIndex = 7
Sheets("Sheet7").Tab.ColorIndex = 8
Sheets("Sheet8").Tab.ColorIndex = 9
Sheets("Sheet9").Tab.ColorIndex = 10
Sheets("Sheet10").Tab.ColorIndex = 11
Sheets("Sheet11").Tab.ColorIndex = 12
Sheets("Sheet12").Tab.ColorIndex = 13
Sheets("Sheet13").Tab.ColorIndex = 14
Call Hide_Columns
End Sub
Sub Hide_Columns()
Dim s As Worksheet, N As Long, i As Long
For Each s In Worksheets
s.Activate
N = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To N
If Left(Cells(1, i).Value, 6) = "this one" Then
Cells(1, i).EntireColumn.Hidden = True
End If
Next i
Next s
Call Auto_Size_Columns_Last
End Sub
Sub Auto_Size_Columns_Last()
' Autosize the column after filling it all in.
Columns("A:CO").Select
Columns("A:CO").EntireColumn.AutoFit
Range("A1").Select
Selection.AutoFilter
End Sub
私の回答が問題を解決するのに十分な解決策を提供している場合は、回答としてマークしてください。そうでない場合は、質問にさらに明確にしてください –