Skip to content

Instantly share code, notes, and snippets.

@Jazzis18
Last active October 13, 2016 09:30
Show Gist options
  • Save Jazzis18/29eb25a00443a041384a7b72736ab948 to your computer and use it in GitHub Desktop.
Save Jazzis18/29eb25a00443a041384a7b72736ab948 to your computer and use it in GitHub Desktop.
VBA Notes

Оглавление

Удалить все листы за исключением определенных

Не удаляем 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

Подробный гайд по работе с MsgBox

Ссылка

Динамическое создание массива

Массив с ширинами всех столбцов:

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

Источник

Оглавление

Проверка ячейки таблицы на пустоту

Если ячейка пуста:

ActiveDocument.Tables(1).Rows(23).Cells(5).Select
If Len(Selection.Text) = 2 Then
    ...
End If

Если не пуста:

If Len(Selection.Text) > 2 Then
    ...
End If

Длина пустой ячейки всегда равна 2, потому что в ней содержатся 2 специальных символа:

  • Невидимый символ Chr(13) — возврат каретки.
  • Невидимый символ Chr(7) — непечатаемый символ, похожий на жирную точку.

Источник

Поиск и замена текста по шаблону

Источник

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment