Как удалить все листы excel макрос от до

Skip to content

Как удалить все листы, кроме активного

На чтение 2 мин. Просмотров 3.9k.

Что делает макрос: Макрос может удалить все листы, кроме активного рабочего листа.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как работает код
  4. Как использовать

Как макрос работает

Этот макрос с помощью цикла пробегает по всем рабочим листам и проверяет на соответствие имени каждого рабочего листа, имя активного листа. Каждый раз, когда имя не совпадает, он удаляет лист. Обратите внимание на использование метода DisplayAlerts на шаге 4 (отключаем предупреждения Excel, чтобы не подтверждать каждое удаление).

Код макроса

Sub UdalitVseListiKromeAktivnogo()
'Шаг 1: Объявляем переменные
Dim ws As Worksheet
'Шаг 2: Запускаем цикл по всем рабочим листам
For Each ws In ThisWorkbook.Worksheets
'Шаг 3: Проверяем имя каждого рабочего листа
If ws.Name <> ThisWorkbook.ActiveSheet.Name Then
'Шаг 4: Выключаем предупреждения
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
End If
'Шаг 5: Переходим на следующий рабочий лист
Next ws
End Sub

Как работает код

  1. Объявляем переменную WS, которая будет хранить имя каждого листа.
  2. На шаге 2 макрос начинает цикл по всем рабочим листам в этой книге. Существует разница между ThisWorkbook и ActiveWorkbook. Объект ThisWorkbook относится к книге, в которой написан код макроса. ActiveWorkbook относится к книге, которая в данный момент активна. Они часто возвращают один и тот же объект, но, если рабочая книга работает, а код находится не в активной рабочей книге, они возвращают различные объекты. В этом случае, мы не хотим рисковать удалением листов в других книгах, так что мы используем ThisWorkbook.
  3. На этом этапе сравниваем активное имя листа с листом, который определяется с помощью цикла.
  4. Если имена листов различны, макрокоманда удаляет лист. Мы используем DisplayAlerts, чтобы подавить любые проверки подтверждения из Excel (чтобы не появлялось системное сообщение с вопросом: «Вы действительно хотите удалить лист?»)
  5. На шаге 5, переходим к следующему листу книги и повторяем проверку снова. После того, как пробежались по всем листам, макрос завершается.

Как использовать

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

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код во вновь созданном модуле.

Обратите внимание, что при использовании ThisWorkbook в макросе вместо ActiveWorkbook, вы не сможете запустить макрос из личных макросов. Это потому, что ThisWorkbook относится к Personal Macro Workbook, а не рабочей книги, к которому следует применить макрос.

2 / 2 / 0

Регистрация: 19.10.2015

Сообщений: 176

1

17.12.2016, 12:02. Показов 4007. Ответов 2


Студворк — интернет-сервис помощи студентам

Здравствуйте. Нашел макрос но у меня что-то не хочет работать, помогите человеку далекому от программирования.

Код

Sub RemoveHiddenSheets()
    Dim ws As Worksheet
    Dim arrSheets As Variant
    ReDim arrSheets(0) As String
    
    With ActiveWorkbook
        MsgBox "Всего листов до удаления скрытых:  " & .Worksheets.Count
        Application.ScreenUpdating = False
        Application.DisplayAlerts = False
        
        For Each ws In .Worksheets
            If ws.Visible <> xlSheetVisible Then
                arrSheets(UBound(arrSheets)) = ws.Name
                ReDim Preserve arrSheets(UBound(arrSheets) + 1)
            End If
        Next ws
      ReDim Preserve arrSheets(UBound(arrSheets) - 1)
        .Worksheets(arrSheets).Delete
        
        Application.DisplayAlerts = True
        Application.ScreenUpdating = True
        MsgBox "Всего листов после удаления скрытых:  " & .Worksheets.Count
    End With
End Sub



0



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

17.12.2016, 13:29

2

lapin9126,

Visual Basic
1
2
3
4
5
6
7
8
9
Sub DeleteAllSheets()
Dim s As Object
  On Error Resume Next
  Application.DisplayAlerts = False
  For Each s In Sheets
    If Not s Is ActiveSheet Then s.Visible = xlSheetVisible: s.Delete
  Next
  Application.DisplayAlerts = True
End Sub

Учтите, что этот макрос удалит ВСЕ листы, кроме текущего, включая скрытые, очень скрытые, диаграммы, листы макросов.
Макрос из #1 удаляет только скрытые рабочие листы.



1



2 / 2 / 0

Регистрация: 19.10.2015

Сообщений: 176

17.12.2016, 13:36

 [ТС]

3

То что нужно, СПАСИБОООООООО!!!!!



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

17.12.2016, 13:36

3

  1. Что делает макрос
  2. Код макроса
  3. Как работает макрос
  4. Как использовать
  5. Скачать файл

Ссылка на это место страницы:
#zadacha

Макрос может удалить все листы, кроме активного рабочего листа. Этот макрос с помощью цикла пробегает по всем рабочим листам и сверяет имя рабочего листа с именем активного листа. Каждый раз, когда имя не совпадает, он удаляет лист. Обратите внимание на использование метода DisplayAlerts на шаге 4 (отключаем предупреждения Excel, чтобы не подтверждать каждое удаление).

Ссылка на это место страницы:
#formula

  1. Sub UdalitVseListiKromeAktivnogo()
  2. Dim ws As Worksheet
  3. For Each ws In ThisWorkbook.Worksheets
  4. If ws.Name <> ThisWorkbook.ActiveSheet.Name Then
  5. Application.DisplayAlerts = False
  6. ws.Delete
  7. Application.DisplayAlerts = True
  8. End If
  9. Next ws
  10. End Sub

Ссылка на это место страницы:
#kak

1. Объявляем переменную WS, которая будет хранить имя каждого листа. 

2. На шаге 2 макрос начинает цикл по всем рабочим листам в этой книге. Существует разница между ThisWorkbook и ActiveWorkbook. Объект ThisWorkbook относится к книге, в которой написан код макроса. ActiveWorkbook относится к книге, которая в данный момент активна. Они часто возвращают один и тот же объект, но, если рабочая книга работает, а код находится не в активной рабочей книге, они возвращают различные объекты. В этом случае, мы не хотим рисковать удалением листов в других книгах, так что мы используем ThisWorkbook

3. На этом этапе сравниваем активное имя листа с листом, который определяется с помощью цикла. 

4. Если имена листов различны, макрокоманда удаляет лист. Мы используем DisplayAlerts, чтобы подавить любые проверки подтверждения из Excel (чтобы не появлялось системное сообщение с вопросом: «Вы действительно хотите удалить лист?») 

5. На шаге 5, переходим к следующему листу книги и повторяем проверку снова. После того, как пробежались по всем листам, макрос завершается. 

Обратите внимание, что при использовании ThisWorkbook в макросе вместо ActiveWorkbook, вы не сможете запустить макрос из личных макросов. Это потому, что ThisWorkbook относится к Personal Macro Workbook, а не рабочей книги, к которой следует применить макрос.

Ссылка на это место страницы:
#touse

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

1. Активируйте редактор Visual Basic, нажав ALT + F11
2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта. 
3. Выберите Insert➜Module
4. Введите или вставьте код во вновь созданном модуле. 

Ссылка на это место страницы:
#file

Файлы статей доступны только зарегистрированным пользователям.

1. Введите свою почту

2. Нажмите Зарегистрироваться

3. Обновите страницу
Вместо этого блока появится ссылка для скачивания материалов.

Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель — помочь вам эффективнее работать в Excel. 

Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.

Подписывайтесь на нас в соц.сетях:

Удалить все листы в книге кроме некоторых

Автор SergioGach, 10.05.2011, 23:00

« назад — далее »

Добрый день!
Не подскажете, как можно решить подобную задачу:
В книге есть листы ( разное количество, каждый раз разные имена), нужно удалить все кроме некоторих (имена которых известны и постоянны).

Например: Есть 3 листа (имя постоянное), макрос копирует еще n-ое (3 или 5 или 15) количество листов (имена разные, неизвестные).
Печатаем книгу, сохраняем. Следующий макрос удаляет все листы кроме первих трех.

Спасибо!


примерно так:

Sub Del3Sheets()
    Dim s As Object, a As Variant, i As Integer, d As Boolean
    a = Array("SheetName1", "SheetName2", "SheetName3")
    Application.DisplayAlerts = False
    For Each s In Sheets
        d = True
        For i = LBound(a) To UBound(a)
            If s.Name = a(i) Then d = False
        Next i
        If d Then s.Delete
    Next s
    Application.DisplayAlerts = True
End Sub


Спасибо! Работает так как нужно :D


  • Профессиональные приемы работы в Microsoft Excel

  • Обмен опытом

  • Microsoft Excel

  • Удалить все листы в книге кроме некоторых

Содержание

  1. Как очистить все листы vba excel
  2. Как очистить весь лист или указанный диапазон в Excel?
  3. Как очистить все листы vba excel
  4. Как удалить все листы, кроме активного
  5. Как макрос работает
  6. Код макроса
  7. Как работает код
  8. Как использовать
  9. Как очистить все листы vba excel
  10. Как удалить все листы, кроме активного
  11. Как макрос работает
  12. Код макроса
  13. Как работает код
  14. Как использовать

Как очистить все листы vba excel

Как очистить весь лист или указанный диапазон в Excel?

Эта статья покажет вам, как быстро очистить содержимое с форматированием ячеек всего листа или указанного диапазона или без него с помощью кода VBA в Excel.

Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!

Приведенные ниже коды VBA помогут вам очистить весь лист с форматированием ячеек или без него.

1. нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули, а затем скопируйте ниже код VBA в модуль.

Если вы просто хотите очистить содержимое ячейки, но сохранить форматирование, попробуйте этот код.

Код VBA: очистить весь лист без форматирования ячеек

Если вы хотите очистить и содержимое, и форматирование ячеек, этот код может вам помочь.

Код VBA: очистить весь лист с форматированием ячеек

Внимание: В коде Sheet4 — это имя рабочего листа, с которого вы очистите содержимое. Пожалуйста, измените его по своему усмотрению.

3. нажмите F5 или нажмите кнопку «Выполнить», чтобы запустить код.

Затем указанный рабочий лист с форматированием ячеек или без него немедленно очищается.

Для очистки только указанного диапазона на листе вы можете попробовать следующий код VBA.

1. Откройте рабочий лист, из которого вы очистите указанный диапазон, затем нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули, а затем скопируйте ниже код VBA в модуль.

Очистить диапазон, но сохранить форматирование, попробуйте этот код.

Код VBA: очистить указанный диапазон без форматирования ячеек

Очистить диапазон с форматированием ячеек, используйте этот код:

Код VBA: очистить указанный диапазон с форматированием ячеек

Внимание: A1: C10 — это диапазон, который вы очистите на листе.

3. нажмите F5 ключ или щелкните Run кнопку, чтобы очистить диапазон.

Источник

Как очистить все листы vba excel

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

The Delete All Inactive Sheets utility of Kutools for Excel helps you easily delete all worksheet in current workbook except the active one. See screenshot:

Kutools for Excel includes more than 300 handy Excel tools. Free to try with no limitation in 60 days. Download the free trial now

С помощью приведенного ниже кода VBA вы можете удалить весь лист в книге, кроме определенного в Excel.

1. Нажмите другой + F11 клавиши одновременно, чтобы открыть Приложение Microsoft Visual Basic окно.

2. Нажмите Вставить > Модули, затем скопируйте и вставьте ниже код VBA в окно модуля.

Код VBA: удалить все листы, кроме указанных

Заметки:

1. » Sheet1 (Основной ключ) и Sheet2 »- это листы, которые вы хотите сохранить в текущей книге. Вы можете изменить их в зависимости от ваших потребностей.

2. Если вы хотите удалить все, но оставить больше листов, добавьте код И xWs.Name <> » имя вашего листа » до Затем слово в шестой строке кода. Такие как:

Если xWs.Name <> «Sheet1» и xWs.Name <> «Sheet2» И xWs.Name <> «имя вашего листа» Затем

3. Если вы хотите оставить только один лист и удалить все из книги, удалите все И, условие в коде. Например, чтобы сохранить Sheet1 в текущей книге, вам нужно изменить код шестой строки на: Если xWs.Name <> «Sheet1» Тогда

Y Вы можете легко удалить все листы, кроме текущего активного листа, одним щелчком мыши. Удалить все неактивные листы полезности Kutools for Excel.

Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.

1. Нажмите Кутулс Плюс > Рабочий лист > Удалить все неактивные листы.

3. Затем появится диалоговое окно. Если вы решили удалить все листы, кроме активного, нажмите кнопку OK кнопку, в противном случае нажмите кнопку Отмена кнопку.

Затем удаляются все листы, кроме текущего активного в вашей книге.

Если вы хотите получить бесплатную пробную версию ( 30 -день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.

Источник

Как удалить все листы, кроме активного

Что делает макрос: Макрос может удалить все листы, кроме активного рабочего листа.

Как макрос работает

Этот макрос с помощью цикла пробегает по всем рабочим листам и проверяет на соответствие имени каждого рабочего листа, имя активного листа. Каждый раз, когда имя не совпадает, он удаляет лист. Обратите внимание на использование метода DisplayAlerts на шаге 4 (отключаем предупреждения Excel, чтобы не подтверждать каждое удаление).

Код макроса

Как работает код

  1. Объявляем переменную WS, которая будет хранить имя каждого листа.
  2. На шаге 2 макрос начинает цикл по всем рабочим листам в этой книге. Существует разница между ThisWorkbook и ActiveWorkbook. Объект ThisWorkbook относится к книге, в которой написан код макроса. ActiveWorkbook относится к книге, которая в данный момент активна. Они часто возвращают один и тот же объект, но, если рабочая книга работает, а код находится не в активной рабочей книге, они возвращают различные объекты. В этом случае, мы не хотим рисковать удалением листов в других книгах, так что мы используем ThisWorkbook.
  3. На этом этапе сравниваем активное имя листа с листом, который определяется с помощью цикла.
  4. Если имена листов различны, макрокоманда удаляет лист. Мы используем DisplayAlerts, чтобы подавить любые проверки подтверждения из Excel (чтобы не появлялось системное сообщение с вопросом: «Вы действительно хотите удалить лист?»)
  5. На шаге 5, переходим к следующему листу книги и повторяем проверку снова. После того, как пробежались по всем листам, макрос завершается.

Как использовать

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

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код во вновь созданном модуле.

Обратите внимание, что при использовании ThisWorkbook в макросе вместо ActiveWorkbook, вы не сможете запустить макрос из личных макросов. Это потому, что ThisWorkbook относится к Personal Macro Workbook, а не рабочей книги, к которому следует применить макрос.

Источник

Как очистить все листы vba excel

Модератор форума: китин, _Boroda_

Мир MS Excel » Вопросы и решения » Вопросы по VBA » Очистка данных со всех листов, по условию (Макросы/Sub)

Очистка данных со всех листов, по условию

kleo90 Дата: Вторник, 28.06.2016, 17:19 | Сообщение № 1

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Dim cell As Range

For Each cell In Sheets(«Çàêàç»).Range(«G1:G250»)
If cell <> «» Then
Range(Cells(cell.Row, 1), Cells(cell.Row, 7)).Style = «Normal»
Range(Cells(cell.Row, 1), Cells(cell.Row, 7)).ClearContents
End If
Next cell
End With

‘For i = 1 To 6
‘For Each y In Sheets(i).Range(«F5:f250»)

‘Application.ScreenUpdating = True
End Sub

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Dim cell As Range

For Each cell In Sheets(«Çàêàç»).Range(«G1:G250»)
If cell <> «» Then
Range(Cells(cell.Row, 1), Cells(cell.Row, 7)).Style = «Normal»
Range(Cells(cell.Row, 1), Cells(cell.Row, 7)).ClearContents
End If
Next cell
End With

‘For i = 1 To 6
‘For Each y In Sheets(i).Range(«F5:f250»)

‘Application.ScreenUpdating = True
End Sub

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Dim cell As Range

For Each cell In Sheets(«Çàêàç»).Range(«G1:G250»)
If cell <> «» Then
Range(Cells(cell.Row, 1), Cells(cell.Row, 7)).Style = «Normal»
Range(Cells(cell.Row, 1), Cells(cell.Row, 7)).ClearContents
End If
Next cell
End With

‘For i = 1 To 6
‘For Each y In Sheets(i).Range(«F5:f250»)

Источник

Как удалить все листы, кроме активного

Что делает макрос: Макрос может удалить все листы, кроме активного рабочего листа.

Как макрос работает

Этот макрос с помощью цикла пробегает по всем рабочим листам и проверяет на соответствие имени каждого рабочего листа, имя активного листа. Каждый раз, когда имя не совпадает, он удаляет лист. Обратите внимание на использование метода DisplayAlerts на шаге 4 (отключаем предупреждения Excel, чтобы не подтверждать каждое удаление).

Код макроса

Как работает код

  1. Объявляем переменную WS, которая будет хранить имя каждого листа.
  2. На шаге 2 макрос начинает цикл по всем рабочим листам в этой книге. Существует разница между ThisWorkbook и ActiveWorkbook. Объект ThisWorkbook относится к книге, в которой написан код макроса. ActiveWorkbook относится к книге, которая в данный момент активна. Они часто возвращают один и тот же объект, но, если рабочая книга работает, а код находится не в активной рабочей книге, они возвращают различные объекты. В этом случае, мы не хотим рисковать удалением листов в других книгах, так что мы используем ThisWorkbook.
  3. На этом этапе сравниваем активное имя листа с листом, который определяется с помощью цикла.
  4. Если имена листов различны, макрокоманда удаляет лист. Мы используем DisplayAlerts, чтобы подавить любые проверки подтверждения из Excel (чтобы не появлялось системное сообщение с вопросом: «Вы действительно хотите удалить лист?»)
  5. На шаге 5, переходим к следующему листу книги и повторяем проверку снова. После того, как пробежались по всем листам, макрос завершается.

Как использовать

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

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код во вновь созданном модуле.

Обратите внимание, что при использовании ThisWorkbook в макросе вместо ActiveWorkbook, вы не сможете запустить макрос из личных макросов. Это потому, что ThisWorkbook относится к Personal Macro Workbook, а не рабочей книги, к которому следует применить макрос.

Источник

Adblock
detector

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Как удалить все комментарии excel
  • Как удалить все кроме таблицы в excel
  • Как удалить все колонтитулы в документе word 2010
  • Как удалить все колонтитулы в word во всех разделах
  • Как удалить все колонтитулы в word 2016 на всех страницах

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии