GreyStyle2AllTables

Конвертирует все таблицы в файле серый стиль
 avatar
user_2065311
vbscript
5 months ago
3.0 kB
1
Indexable
```
GreyStyleTo2Tables

Описание:

Этот макрос проходит по всем листам активной книги и применяет серый стиль оформления (“TableStyleLight1”) ко всем таблицам, если они есть на листе. Помимо этого, макрос форматирует шрифт всего листа и увеличивает шрифт в первой строке (заголовки). Автоматически подстраивается высота первой строки и ширина столбцов для удобства чтения. По завершении выводится сообщение с количеством отформатированных листов.
```


Sub GreyStyleAllTables()
    Dim ws As Worksheet
    Dim tbl As ListObject
    Dim hasTables As Boolean
    Dim wb As Workbook
    Dim formattedSheets As Integer
    
    ' Устанавливаем активную книгу
    Set wb = ActiveWorkbook
    
    ' Счётчик отформатированных листов
    formattedSheets = 0
    
    ' Цикл по всем листам активной книги
    For Each ws In wb.Worksheets
        ' Пропускаем лист с именем "Список листов"
        If ws.Name <> "Список листов" Then
            
            hasTables = False
            
            ' Проверка наличия таблиц (ListObjects) на листе
            If ws.ListObjects.Count > 0 Then
                hasTables = True
                
                ' Цикл по всем таблицам (ListObjects) на листе
                For Each tbl In ws.ListObjects
                    ' Устанавливаем стиль таблицы
                    tbl.TableStyle = "TableStyleLight1"
                Next tbl
            End If
            
            ' Применение форматирования, если таблицы существуют
            If hasTables Then
                ' Форматирование шрифта и заголовков
                With ws.Cells.Font
                    .Name = "Arial"
                    .Size = 12
                End With
                
                With ws.Rows("1:1").Font
                    .Size = 14
                End With
                
                ' Настройка ширины столбцов и высоты строк для удобства чтения
                ws.Rows("1:1").RowHeight = 39
                ws.Cells.Columns.AutoFit
                
                ' Увеличиваем счётчик отформатированных листов
                formattedSheets = formattedSheets + 1
            End If
        End If
    Next ws
    
    ' Финальное сообщение
    MsgBox "Macro finished. " & formattedSheets & " worksheets were formatted."
End Sub
Editor is loading...
Leave a Comment