Excel vba очистить всю таблицу

Метод Range.Clear для полной очистки диапазона ячеек из кода VBA Excel. Методы очистки отдельных свойств и их групп в ячейках. Примеры использования.

Методы очистки ячеек

Метод Очищаемые свойства Примечание
Range.Clear Почти все свойства Ширина и высота ячеек не изменяются
Range.ClearComments Комментарии Для Excel в составе Office 365
Range.ClearContents Формулы и значения Исходное форматирование сохраняется
Range.ClearFormats Свойства, задающие форматы В том числе отмена объединения ячеек
Range.ClearHyperlinks Гиперссылки Текст и форматирование сохраняются
Range.ClearNotes Примечания и заметки Примечания – для локальных программ Excel, заметки – для Excel в составе Office 365
Range.ClearOutline Структура данных Смотрите, что такое структурирование данных

Range – выражение, возвращающее диапазон ячеек.

Примеры использования

1. Удаление гиперссылки из ячейки A1
Cells(1, 1).ClearHyperlinks

2. Очистка диапазона A1:L50 от формул и значений
Range("A1:L50").ClearContents

3. Очистка всех свойств ячеек в столбцах A:K
Columns("A:K").Clear

4. Очистка форматирования ячеек в строках 1:20
Rows("1:20").ClearFormats

Методы очистки диапазонов ячеек в VBA Excel возвращают очищаемые свойства ячеек к значениям по умолчанию. К таким, как на вновь созданном стандартном рабочем листе. При любых методах очистки высота строк и ширина столбцов не изменяются.


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


Иногда есть необходимость перед какими-то действиями сначала очистить лист Excel от всех данных, которые на нем есть, чтобы заполнить его новыми данными. Я предлагаю 3 варианта как можно очистить лист.

Способ 1

Очистка всех ячеек на листе

' Очистка всех ячеек от данных, а так же оформления ячеек (шрифт, фон и т.п.)
Sheets("Лист1").Cells.Clear

Либо, если нужно очистить только данные на листе Excel, не затрагивая формат ячеек, можно сделать так:

' Очистка всех ячеек только от данных
Sheets("Лист1").Cells.ClearContents

Способ 2

Чтобы очистить все данные и при этом определение последней строки SpecialCells(xlCellTypeLastCell) работало правильно, можно воспользоваться таким вариантом:

Sheets("Лист1").Cells.Delete Shift:=xlUp
ThisWorkbook.Saved = True

Способ 3

Если лист содержит очень преочень много данных, тогда чтобы очистить лист Excel самым быстрым способом будет удалить его и создать заново.

' Отключаем предупреждение об удалении данных на листе
Application.DisplayAlerts = False
' Удаляем лист
Sheets("Лист1").Delete
' Включаем предупреждения обратно
Application.DisplayAlerts = True
' Добавляем лист
Set Sheet = Sheets.Add
' Переименовываем как он назывался перед удалением
Sheet.Name = "Лист1"

Предложенных 3 вариантов удаления всех данных на листе Excel я думаю будет достаточно для решения повседневных задач на VBA.

 

BRP

Пользователь

Сообщений: 213
Регистрация: 27.12.2016

Доброго времени суток, уважаемые форумчане!

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

Огромное спасибо!

Изменено: BRP18.01.2022 14:44:00

 

webley

Пользователь

Сообщений: 1991
Регистрация: 01.01.1970

#2

18.01.2022 14:12:28

Добрый день!

Код
Sub LOClear()
    Dim lo As ListObject, sh As Worksheet
    
    For Each sh In ThisWorkbook.Worksheets
        For Each lo In sh.ListObjects
         If lo.ListRows.Count > 0 Then lo.DataBodyRange.Delete
        Next lo
    Next sh
    MsgBox "Done"
End Sub
 

BRP

Пользователь

Сообщений: 213
Регистрация: 27.12.2016

Работает отлично!

Но мне нужно не со всех таблиц удалить данные. К примеру у меня на 10 листах 10 умных таблиц, а очистить нужно только 5. И удалить начиная с третей строки, то есть остаться должны шапка и 2 строки таблицы…

 

МатросНаЗебре

Пользователь

Сообщений: 5507
Регистрация: 05.02.2014

#4

18.01.2022 14:26:41

Код
Option Explicit

Const ROWS_COUNT = 3

Sub ClearTablesInActiveWorkbook()
    ClearTablesInWorkbook ActiveWorkbook
End Sub

Sub ClearTablesInWorkbook(wb As Workbook)
    Dim sh As Worksheet
    For Each sh In wb.Worksheets
        ClearTablesInWorksheet sh
    Next
End Sub

Sub ClearTablesInWorksheet(sh As Worksheet)
    Dim tb As ListObject
    For Each tb In sh.ListObjects
        ClearTable tb
    Next
End Sub

Sub ClearTable(tb As ListObject)
    Dim rn As Range
    On Error Resume Next
    Set rn = tb.Range
    On Error GoTo 0
    If Not rn Is Nothing Then
        If rn.Rows.Count > ROWS_COUNT Then
            rn.Cells(ROWS_COUNT + 1, 1).Resize(rn.Rows.Count - ROWS_COUNT, rn.Columns.Count).Clear
            tb.Resize rn.Cells(1, 1).Resize(ROWS_COUNT, rn.Columns.Count)
        End If
    End If
End Sub
 

DANIKOLA

Пользователь

Сообщений: 422
Регистрация: 17.08.2019

#5

18.01.2022 14:32:11

Код
Sub LOClear2()
    Dim lo As ListObject, sh As Worksheet
     
    For Each sh In ThisWorkbook.Worksheets
        For Each lo In sh.ListObjects
            If lo.ListRows.Count > 2 Then
                lo.Range.Rows("3:" & lo.DataBodyRange.Rows.Count).Delete
            End If
        Next lo
    Next sh
    MsgBox "Done"
End Sub
 

webley

Пользователь

Сообщений: 1991
Регистрация: 01.01.1970

#6

18.01.2022 14:34:03

Цитата
написал:
у меня на 10 листах 10 умных таблиц, а очистить нужно только 5
Цитата
написал:
который удалит все строки умных таблиц, на всех листах,

вы уж определитесь:)

а по поводу того, чтоб верхнюю строку оставить — можно так:

Код
Sub LOClear()
    Dim lo As ListObject, sh As Worksheet, j As Long
     
    For Each sh In ThisWorkbook.Worksheets
        For Each lo In sh.ListObjects
            For j = lo.ListRows.Count To 2 Step -1
                lo.ListRows(j).Delete
            Next j
        Next lo
    Next sh
    MsgBox "Done"
End Sub

Изменено: webley18.01.2022 14:34:25

 

BRP

Пользователь

Сообщений: 213
Регистрация: 27.12.2016

А как задать нужные листы, или нужные умные таблицы? Не пойму….

 

webley

Пользователь

Сообщений: 1991
Регистрация: 01.01.1970

#8

18.01.2022 14:58:59

ну, задавать по разному можно — например так:

Код
Sub LOClear()
    Dim lo As ListObject, sh As Worksheet, j As Long
     
    Dim LONames
    LONames = Array("Таблица14", "Таблица13") 'список таблиц для очистки
     
    For Each sh In ThisWorkbook.Worksheets
        For Each lo In sh.ListObjects
            If Not IsError(Application.Match(lo.Name, LONames, 0)) Then
                For j = lo.ListRows.Count To 2 Step -1
                    lo.ListRows(j).Delete
                Next j
            End If
        Next lo
    Next sh
    MsgBox "Done"
End Sub
 

Jack Famous

Пользователь

Сообщений: 10846
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#9

18.01.2022 15:20:07

Цитата
BRP: макрос который удалит все строки умных таблиц, на нужных

как программе объяснить, какие вы считаете НУЖНЫМИ?
webley, предложил ввести список имён таблиц для удаления. Есть также множество других вариантов

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

BRP

Пользователь

Сообщений: 213
Регистрация: 27.12.2016

webley,  Идеально) Спасибо!

Изменено: BRP18.01.2022 16:01:50

 

RAN

Пользователь

Сообщений: 7091
Регистрация: 21.12.2012

#11

18.01.2022 16:14:09

Код
Sub Мяу()
    Dim ar, i&, sh As Worksheet
    ar = Array("Таблица1", "Таблица13")
    On Error Resume Next
    For Each sh In ThisWorkbook.Worksheets
        For i = 0 To UBound(ar)
            With sh.ListObjects(ar(i))
                .ListRows(3).Range.Resize(.ListRows.Count - 2).Delete
            End With
        Next
    Next
End Sub

VBA Clear Table Content in Excel. This means clearing or deleting or removing data from the table in Excel using VBA. Here we use the ListObjects collection and ClearContents property to delete or clear data. In this tutorial let us learn the example and step by step instructions to clear content from the table.

Example to VBA Delete Table Content in Excel

Let us see the example to clear content or data from the table of data body range. The sheet name defined as ‘Table‘. And we use table name as ‘MyDynamicTable‘. You can change these two as per your requirement. Where ClearContents property is used to clear data from the table.

'VBA Clear Table Content
Sub VBAF1_Clear_Table_Content()
    
    'Definf Sheet and table name
     With Sheets("Table").ListObjects("MyDynamicTable")
        
        'Check If any data exists in the table
        If Not .DataBodyRange Is Nothing Then
            'Clear Content from the table
            .DataBodyRange.ClearContents
        End If
        
    End With
    
End Sub

Output: Here is the following output screenshot of above example macro code.

VBA Clear Table Content in Excel

Instructions to Run VBA Macro Code or Procedure:

You can refer the following link for the step by step instructions.

Instructions to run VBA Macro Code

Other Useful Resources:

Click on the following links of the useful resources. These helps to learn and gain more knowledge.

VBA Tutorial VBA Functions List VBA Arrays in Excel VBA Tables and ListObjects

VBA Editor Keyboard Shortcut Keys List VBA Interview Questions & Answers Blog

Содержание

  1. VBA Excel. Range.Clear и другие методы очистки ячеек
  2. Методы очистки ячеек
  3. Примеры использования
  4. 6 комментариев для “VBA Excel. Range.Clear и другие методы очистки ячеек”
  5. VBA Clear Entire Sheet
  6. Clear ActiveSheet
  7. Clear Everything (Contents, Formats, Comments, etc.)
  8. Clear Contents
  9. Clear Formats
  10. Delete Worksheet UsedRange
  11. Clear Sheet (By Name)
  12. VBA Coding Made Easy
  13. Clear Worksheet (From Variable)
  14. VBA Code Examples Add-in
  15. Как очистить таблицу excel vba
  16. Как очистить весь лист или указанный диапазон в Excel?
  17. VBA Очистить Содержание — Как использовать Excel VBA Clear Contents?
  18. Введение в Excel VBA Очистить содержание
  19. Примеры Excel VBA Очистить содержимое
  20. Excel VBA Clear Contents — Пример № 1
  21. Excel VBA Очистить содержимое — Пример № 2
  22. Excel VBA Очистить содержимое — Пример № 3
  23. Excel VBA Очистить содержимое — Пример № 4
  24. То, что нужно запомнить
  25. Рекомендуемые статьи

VBA Excel. Range.Clear и другие методы очистки ячеек

Метод Range.Clear для полной очистки диапазона ячеек из кода VBA Excel. Методы очистки отдельных свойств и их групп в ячейках. Примеры использования.

Методы очистки ячеек

Метод Очищаемые свойства Примечание
Range.Clear Почти все свойства Ширина и высота ячеек не изменяются
Range.ClearComments Комментарии Для Excel в составе Office 365
Range.ClearContents Формулы и значения Исходное форматирование сохраняется
Range.ClearFormats Свойства, задающие форматы В том числе отмена объединения ячеек
Range.ClearHyperlinks Гиперссылки Текст и форматирование сохраняются
Range.ClearNotes Примечания и заметки Примечания – для локальных программ Excel, заметки – для Excel в составе Office 365
Range.ClearOutline Структура данных Смотрите, что такое структурирование данных

Range – выражение, возвращающее диапазон ячеек.

Примеры использования

1. Удаление гиперссылки из ячейки A1
Cells(1, 1).ClearHyperlinks

2. Очистка диапазона A1:L50 от формул и значений
Range(«A1:L50»).ClearContents

3. Очистка всех свойств ячеек в столбцах A:K
Columns(«A:K»).Clear

4. Очистка форматирования ячеек в строках 1:20
Rows(«1:20»).ClearFormats

Методы очистки диапазонов ячеек в VBA Excel возвращают очищаемые свойства ячеек к значениям по умолчанию. К таким, как на вновь созданном стандартном рабочем листе. При любых методах очистки высота строк и ширина столбцов не изменяются.

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

6 комментариев для “VBA Excel. Range.Clear и другие методы очистки ячеек”

Здравствуйте!
Есть такая проблема:
1. В отдельном модуле написана процедура, которая при запуске и вводе в inputbox данных генерирует таблицу с данными. Вот перед каждой генерацией сделал так, чтобы содержимое листа , кроме первой строки (шапки), очищалось: Thisbooks.Worksheets(«Лист3»).Range(«A2»,Cells(lastRow, lastColumn).clear

2. На первом листе у меня как бы меню управления. Там кнопка, к которой привязана эта процедура. При запуске выполнение процедуры доходит до строки с очисткой и уходит в ошибку 1004 run time error: Application-defined or object-defined error.

При этом, если эту же процедуру запускать с кнопки, или через F5, но с открытого Лист3 — все отлично выполняется!

Никак не могу додуматься в чем же проблема. Подскажите пожалуйста!

Источник

VBA Clear Entire Sheet

In this Article

In VBA it’s fast and easy to clear an entire sheet (or worksheet).

Clear ActiveSheet

Clear Everything (Contents, Formats, Comments, etc.)

This will clear the Activesheet’s cells of all cell properties: contents, formats, comments, etc:

Clear Contents

Clear Formats

or only the Cell Formats:

By typing: Cells.Clear into the VBA Editor you can see the list of Clear methods available to you:

Delete Worksheet UsedRange

You can also delete the entire worksheet’s UsedRange. This can also delete objects (shapes, charts, textboxes).

Clear Sheet (By Name)

To clear a specific sheet use the following code where “Sheet1” is the name of the sheet to clear:

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!

Clear Worksheet (From Variable)

To clear a sheet defined by an object variable use the following code:

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

Источник

Как очистить таблицу excel vba

Как очистить весь лист или указанный диапазон в 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 VBA Clear Contents?

Введение в Excel VBA Очистить содержание

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

Очистить содержимое — это функция диапазона в Excel, которая используется для очистки содержимого в заданном диапазоне ячеек или группе ячеек. Очистка данных и очистка ячеек — это разные вещи, которые мы должны помнить. С четким содержимым мы очищаем только данные, представленные в ячейке. Чистое содержимое не влияет на форматирование или условное форматирование ячеек. Это делается с помощью другой функции.

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

В диапазоне ячеек мы предоставляем диапазон ячеек, который мы хотим очистить.

Давайте использовать эту функцию в нескольких примерах, которые сделают ее более понятной для нас. Для демонстрации у меня есть данные в разных листах.

Примечание. Чтобы использовать VBA в Excel, убедитесь, что у нас включена вкладка разработчика на вкладке «Файлы» в разделе параметров.

Примеры Excel VBA Очистить содержимое

Ниже приведены несколько практических примеров содержания VBA Clear в Excel.

Вы можете скачать этот шаблон Excel VBA Clear Contents здесь — Шаблон VBA Clear Contents Excel

Excel VBA Clear Contents — Пример № 1

На листе 1 у меня есть некоторые данные в ячейке A1. Посмотрите на это ниже.

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

Шаг 1: Перейдите на вкладку разработчика и нажмите на Visual Basic, чтобы открыть VB Editor.

Шаг 2: Он откроет VB Editor для нас. Нажмите на вкладку Вставить, чтобы вставить новый модуль.

Шаг 3: Запустите код VBA подфункцией.

Код:

Шаг 4: Чтобы использовать любые свойства рабочего листа, нам нужно сначала активировать рабочий лист. Активируйте лист с помощью следующего кода.

Код:

Шаг 5: Теперь используйте функцию Очистить содержимое, чтобы очистить данные в ячейке A1 с помощью следующего кода.

Код:

Шаг 6: Запустите приведенный выше код с помощью кнопки запуска или нажмите F5.

Запустив код, мы можем увидеть результат ячейки A1 на листе 1, что данные пропали.

Excel VBA Очистить содержимое — Пример № 2

В приведенном выше примере мы очистили содержимое одной ячейки, но у нас есть данные в диапазоне ячеек. Будет ли эта функция работать? Мы узнаем то же самое в этом примере. У меня есть данные в листе 2 следующим образом.

Мы будем использовать функцию очистки содержимого для очистки данных в этом диапазоне ячеек. Выполните следующие шаги, чтобы очистить содержимое ячейки с помощью кода VBA.

Шаг 1: В окне кода объявите подфункцию для написания кода.

Код:

Шаг 2: Чтобы использовать свойства листа 2, всегда не забывайте активировать лист с помощью следующего кода.

Код:

Шаг 3: Мы знаем, что у нас есть данные в диапазоне ячеек A1: C3 на листе 2. Мы будем использовать функцию очистки содержимого, чтобы очистить содержимое этого диапазона ячеек.

Код:

Шаг 4: Запустите приведенный выше код с помощью кнопки запуска или нажмите F5, чтобы получить следующий результат.

Мы видим, что данные из диапазона ячеек A1: C3 были очищены.

Excel VBA Очистить содержимое — Пример № 3

Мы обсудили форматирование ранее в статье. Очистить содержимое также очистить форматирование ячеек с содержимым? Мы увидим это в этом примере. Для демонстрации у меня есть данные на листе 3 светло-голубого цвета. Посмотрите на это ниже,

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

Шаг 1: Запустите код, объявив подфункцию.

Код:

Шаг 2: Мы знаем, что для использования свойств листа 3 мы должны активировать лист с помощью следующего кода.

Код:

Шаг 3: Мы знаем, что у нас есть данные в диапазоне ячеек A1: C3 на листе 3. Мы будем использовать функцию очистки содержимого, чтобы очистить содержимое этого диапазона ячеек.

Код:

Шаг 4: Запустите приведенный выше код с помощью кнопки запуска или нажмите F5, чтобы получить следующий результат.

Мы можем видеть, что данные из диапазона ячеек A1: C3 были очищены, но формат ячеек остается неизменным.

Excel VBA Очистить содержимое — Пример № 4

В этом примере у нас есть некоторые данные на листе 4, данные выделены жирным шрифтом и курсивом. Как только мы очистим содержимое, мы снова поместим некоторые данные в эти ячейки, чтобы увидеть, присутствует ли форматирование или нет. Посмотрите на данные ниже: ячейка A1 выделена жирным шрифтом, а ячейка B1 выделена курсивом.

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

Шаг 1: Запустите код, объявив подфункцию.

Код:

Шаг 2: Мы знаем, что для использования свойств листа 4 мы должны активировать лист с помощью следующего кода.

Код:

Шаг 3: Мы знаем, что у нас есть данные в диапазоне ячеек A1: B1 на листе 4. Мы будем использовать функцию очистки содержимого, чтобы очистить содержимое этого диапазона ячеек.

Код:

Шаг 4: Запустите приведенный выше код с помощью кнопки запуска или нажмите F5, чтобы получить следующий результат.

Теперь попробуйте снова ввести несколько случайных значений в ячейки A1 и B1, чтобы проверить, не изменилось ли форматирование.

Мы можем видеть, что мы только очистили содержимое, пока форматирование все еще там.

То, что нужно запомнить

  • VBA Clear Contents может удалять данные из ячейки или заданного диапазона ячеек.
  • Очистить содержимое только удаляет данные из ячеек, это не влияет на форматирование ячеек.
  • Даже если данные имеют условное форматирование, чистое содержимое не очищает форматирование ячеек.

Рекомендуемые статьи

Это руководство по VBA Clear Contents. Здесь мы обсуждаем примеры для очистки содержимого ячейки с использованием кода Excel VBA, а также практические примеры и загружаемый шаблон Excel. Вы также можете просмотреть наши другие предлагаемые статьи —

  1. Примеры использования VBA Enum
  2. Группировка столбцов в Excel
  3. Пример удаления столбца VBA
  4. Конкатенация в Excel

Источник

Понравилась статья? Поделить с друзьями:
  • Excel vba отфильтрованный значения
  • Excel vba отслеживание изменений ячейки
  • Excel vba отследить изменение ячейки
  • Excel vba отправка почты outlook
  • Excel vba отображение формы