Добрый день. Из одного макроса по удалению строк - самому получилось аналогично составить второй, на удаление столбцов. Оба простые и по отдельности работают.
Но в одном макросе работать не хотят - отанавливается и выдает ошибку в строке:
Код |
---|
If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra) ' добавляем столбец в диапазон для удаления |
Сам макрос выглядит так, все подписано и должно быть понятно:
Код |
---|
Sub DeleteRowsAndColumns123()
Dim ra As Range, delra As Range, DeleteRow As String, DeleteColumn As String 'как обычно, задаем переменные
DeleteRow = "Удалить строку" ' удаляем строки с таким текстом
DeleteColumn = "Удалить столбец" ' удаляем столбцы с таким текстом
For Each ra In ActiveSheet.UsedRange.Rows ' перебираем все строки в используемом диапазоне листа
If Not ra.Find(DeleteRow, , xlValues, xlPart) Is Nothing Then ' если в строке найден искомый текст
If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra) ' добавляем строку в диапазон для удаления
End If 'Конец проверки "если"
Next 'Конец цикла поиска
If Not delra Is Nothing Then delra.EntireRow.Delete ' если подходящие столбцы найдены - удаляем их
For Each ra In ActiveSheet.UsedRange.Columns ' перебираем все столбцы в используемом диапазоне листа
If Not ra.Find(DeleteColumn, , xlValues, xlPart) Is Nothing Then ' если в столбце найден искомый текст
If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra) ' добавляем столбец в диапазон для удаления
End If 'Конец проверки "если"
Next 'Конец цикла поиска
If Not delra Is Nothing Then delra.EntireColumn.Delete ' если подходящие строки найдены - удаляем их
End Sub
|
Офис 2010. Пожалуйста, подскажите, где я ошибся?