- Удалить все листы за исключением определенных
- Задать ячейке все рамки
- Снять с ячейки все рамки
- Подробный гайд по работе с MsgBox
- Динамическое создание массива
- Проверка листа на пустоту
Не удаляем 1-ый лист:
Dim xWs As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In Application.ActiveWorkbook.Worksheets
If xWs.Index <> 1 Then
xWs.Delete
End If
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Не удаляем текущий лист:
Dim CurWs As Worksheet
Set CurWs = Sheets(ActiveSheet.Index)
Dim xWs As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In Application.ActiveWorkbook.Worksheets
If xWs.Index <> CurWs.Index Then
xWs.Delete
End If
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Dim rng As Range
Set rng = Range("A1:F20")
With rng.Borders
.LineStyle = xlContinuous
.Color = vbBlack
.Weight = xlThin
End With
Range("A1:F20").Select
Selection.Borders.LineStyle = xlNone
Массив с ширинами всех столбцов:
Dim ColWidths() As Double, size As Integer, i As Integer
size = ActiveSheet.UsedRange.Columns.Count
ReDim ColWidths(size)
i = 1
For Each col In ActiveSheet.UsedRange.Columns
ColWidths(i) = col.ColumnWidth
i = i + 1
Next col
Если не пустой:
If WorksheetFunction.CountA(ActiveSheet.Cells) <> 0
...
End If