Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save aleksandrkuzminv/b545202f0ec9bbb4c994d27d27d017c6 to your computer and use it in GitHub Desktop.
Save aleksandrkuzminv/b545202f0ec9bbb4c994d27d27d017c6 to your computer and use it in GitHub Desktop.
Sub Удалить_Списание_На_Расходы()
Dim rng As Range
Dim cell As Range
Dim searchText As String
searchText = "Списание на расходы" ' Текст для поиска и удаления
' Определяем используемую область на активном листе
Set rng = ActiveSheet.UsedRange
' Включаем отмену отображения изменений, чтобы ускорить выполнение макроса
Application.ScreenUpdating = False
' Перебираем каждую ячейку в области
For Each cell In rng.Cells
' Проверяем, содержит ли ячейка искомый текст
If InStr(1, cell.Value, searchText, vbTextCompare) > 0 Then
' Если ячейка содержит искомый текст, удаляем всю строку
cell.EntireRow.Delete
End If
Next cell
' Включаем обратно отображение изменений
Application.ScreenUpdating = True
End Sub
@aleksandrkuzminv
Copy link
Author

Описание:

Sub Удалить_Списание_На_Расходы(): Объявление подпрограммы с именем "Удалить_Списание_На_Расходы".

Dim rng As Range: Объявление переменной "rng" типа "Range" для хранения диапазона ячеек.

Dim cell As Range: Объявление переменной "cell" типа "Range" для хранения каждой отдельной ячейки.

Dim searchText As String: Объявление переменной "searchText" типа "String" для хранения текста, который нужно удалить.

searchText = "Списание на расходы": Установка значения переменной "searchText" равным "Списание на расходы". Этот текст будет использоваться для поиска и удаления.

Set rng = ActiveSheet.UsedRange: Определение используемой области на активном листе и сохранение ее в переменную "rng".

Application.ScreenUpdating = False: Отключение обновления экрана приложения Excel для ускорения выполнения макроса.

Цикл For Each cell In rng.Cells перебирает каждую ячейку в диапазоне "rng".

If InStr(1, cell.Value, searchText, vbTextCompare) > 0 Then: Проверка, содержит ли ячейка искомый текст. Если условие выполняется (текст найден), то выполняются следующие инструкции.

cell.EntireRow.Delete: Удаление всей строки, содержащей найденный текст.

Next cell: Переход к следующей ячейке и повторение проверки и удаления до тех пор, пока не будут проверены все ячейки в диапазоне.

Application.ScreenUpdating = True: Включение обратно обновления экрана для отображения изменений.

Таким образом, после выполнения этого макроса, все строки, содержащие текст "Списание на расходы", будут удалены на активном листе в Excel.

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