-3 / 2 / 0 Регистрация: 29.10.2013 Сообщений: 178 |
|
1 |
|
30.09.2017, 07:53. Показов 14233. Ответов 12
Всем доброго времени суток.
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||
30.09.2017, 09:25 |
2 |
|||
Пример преобразования всех умных таблиц :
1 |
NikolayHAOS -3 / 2 / 0 Регистрация: 29.10.2013 Сообщений: 178 |
||||
30.09.2017, 13:12 [ТС] |
3 |
|||
pashulka, не работает.
0 |
6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
|
30.09.2017, 15:00 |
4 |
Николай, у Вас хаос!
0 |
-3 / 2 / 0 Регистрация: 29.10.2013 Сообщений: 178 |
|
30.09.2017, 15:03 [ТС] |
5 |
Как может не работать первый код а хрен его знает.
0 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
30.09.2017, 15:11 |
6 |
И правда хаос, ещё и с фильтром
0 |
-3 / 2 / 0 Регистрация: 29.10.2013 Сообщений: 178 |
|
30.09.2017, 15:14 [ТС] |
7 |
Назначил на нее фильтр. Естественно назначил макрос. Ошибся.
0 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
30.09.2017, 15:25 |
8 |
Это не единственная ошибка. Например, Вы могли бы прочитать офисную справку, касаемо метода Unlist и понять, что именно он и преобразует «умную» таблицу в диапазон, но …
0 |
NikolayHAOS -3 / 2 / 0 Регистрация: 29.10.2013 Сообщений: 178 |
||||
30.09.2017, 15:30 [ТС] |
9 |
|||
pashulka,
Как заставить макрос последовательно перебирать листы, и выполнять на них макрос1?
0 |
OLEGOFF 1062 / 506 / 137 Регистрация: 27.02.2013 Сообщений: 1,451 |
||||
30.09.2017, 16:13 |
10 |
|||
Попробуйте так
0 |
-3 / 2 / 0 Регистрация: 29.10.2013 Сообщений: 178 |
|
30.09.2017, 16:24 [ТС] |
11 |
OLEGOFF, Работает, но если листов меньше то выскакивает ошибка.
0 |
OLEGOFF 1062 / 506 / 137 Регистрация: 27.02.2013 Сообщений: 1,451 |
||||
30.09.2017, 16:32 |
12 |
|||
Сообщение было отмечено NikolayHAOS как решение Решение
1 |
-3 / 2 / 0 Регистрация: 29.10.2013 Сообщений: 178 |
|
30.09.2017, 16:43 [ТС] |
13 |
OLEGOFF,
0 |
ТРЕНИНГИ
Быстрый старт
Расширенный Excel
Мастер Формул
Прогнозирование
Визуализация
Макросы на VBA
КНИГИ
Готовые решения
Мастер Формул
Скульптор данных
ВИДЕОУРОКИ
Бизнес-анализ
Выпадающие списки
Даты и время
Диаграммы
Диапазоны
Дубликаты
Защита данных
Интернет, email
Книги, листы
Макросы
Сводные таблицы
Текст
Форматирование
Функции
Всякое
Коротко
Подробно
Версии
Вопрос-Ответ
Скачать
Купить
ПРОЕКТЫ
ОНЛАЙН-КУРСЫ
ФОРУМ
Excel
Работа
PLEX
© Николай Павлов, Planetaexcel, 2006-2022
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
Техническая поддержка сайта
ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Как преобразовать все таблицы в диапазоны в активном листе?
В Excel вы можете использовать некоторые таблицы для записи данных, но в некоторых случаях вам нужно преобразовать таблицу в диапазон для выполнения некоторого редактирования. Как правило, вы можете преобразовать только одну таблицу в диапазон один раз, это будет проблематично, если на листе есть десятки таблиц, которые необходимо преобразовать в диапазоны. Здесь у меня есть код VBA, который может сразу конвертировать таблицы активного листа в диапазон.
Преобразование всех таблиц в диапазоны активного листа с помощью VBA
Преобразование всех таблиц в диапазоны активного листа с помощью VBA
1. Активируйте лист, таблицы которого вы хотите преобразовать, затем нажмите Alt + F11 ключи для включения Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули чтобы создать новый скрипт модуля, скопируйте и вставьте приведенный ниже код в пустой модуль.
VBA: преобразовать все таблицы активного листа в диапазоны
Sub ConvertTablesToRange()
'UpdatebyExtendoffice20180530
Dim xSheet As Worksheet
Dim xList As ListObject
Set xSheet = ActiveWorkbook.ActiveSheet
For Each xList In xSheet.ListObjects
xList.Unlist
Next
End Sub
3. Нажмите F5 Клавиша запуска кода, теперь все таблицы текущего листа преобразованы в диапазоны.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (2)
Оценок пока нет. Оцените первым!
Содержание
- Таблицы и объекты VBA
В этом руководстве будет показано, как работать с таблицами и объектами ListObject в VBA.
Таблицы — одна из самых полезных и мощных функций Excel. В этом руководстве мы рассмотрим, как использовать VBA для создания таблицы, добавления простой сортировки в таблицу, фильтрации таблицы и выполнения других задач, связанных с таблицами.
Создать таблицу с VBA
Метод ListObjects.Add может добавлять таблицу на лист на основе диапазона на этом листе. У нас есть диапазон, показанный в ($ A $ 1: $ B $ на листе под названием Sheet1.
Следующий код добавит на ваш рабочий лист таблицу с именем Table1 в зависимости от диапазона ($ A $ 1: $ B $ с использованием стиля таблицы по умолчанию:
123456 | Подложка CreateTableInExcel ()ActiveWorkbook.Sheets («Sheet1»). ListObjects.Add (xlSrcRange, Range («$ A $ 1: $ B $ 8»),, xlYes) .Name = _»Таблица 1″Конец подписки |
Результат:
Вставка столбца в конец таблицы с помощью VBA
Вы можете использовать метод ListColumns.Add, чтобы добавить столбец в конец вашей таблицы. У нас есть таблица под названием Table1, показанная ниже.
Вы можете добавить столбец в свою таблицу, используя следующий код, который всегда будет добавлять столбец в конец таблицы:
12345 | Sub AddColumnToTheEndOfTheTable ()ActiveWorkbook.Sheets («Sheet1»). ListObjects («Table1»). ListColumns.AddКонец подписки |
Результат:
Вставка строки внизу таблицы с помощью VBA
Вы можете использовать метод ListRows.Add, чтобы добавить строку в конец таблицы. У нас есть таблица под названием Table1, показанная ниже.
Следующий код всегда будет добавлять строку в конец таблицы.
12345 | Подложка AddRowToTheBottomOfTheTable ()ActiveSheet.ListObjects («Таблица1»). ListRows.AddКонец подписки |
Результат:
Добавление простой сортировки с помощью VBA
Вы можете отсортировать таблицу с помощью VBA. У нас есть таблица с именем Table1, показанная ниже, и мы можем использовать VBA для сортировки столбца продаж от самого низкого до самого высокого.
Следующий код отсортирует столбец «Продажи» в порядке возрастания.
12345678910111213141516171819 | Sub SimpleSortOnTheTable ()Диапазон («Таблица1 [[# заголовков], [Продажи]]»). ВыберитеActiveWorkbook.Worksheets («Sheet1»). ListObjects («Table1»). Sort.SortFields.ClearActiveWorkbook.Worksheets («Sheet1»). ListObjects («Table1»). Sort.SortFields.Add _Ключ: = Диапазон («Таблица1 [[# Все], [Продажи]]»), SortOn: = xlSortOnValues, Order: = _xlAscending, DataOption: = xlSortNormalС ActiveWorkbook.Worksheets («Sheet1»). ListObjects («Table1»). Sort.Header = xlYes.MatchCase = Ложь.Orientation = xlTopToBottom.SortMethod = xlPinYin.Подать заявлениеКонец сКонец подписки |
Результат:
Фильтрация таблицы с помощью VBA
Вы также можете фильтровать таблицу Excel с помощью VBA. У нас есть таблица с именем Table1, и мы хотели бы отфильтровать ее, чтобы отображались только продажи, превышающие 1500.
Мы можем использовать метод автофильтра, который имеет пять необязательных параметров. Поскольку мы хотим отфильтровать столбец «Продажи», который является вторым столбцом, мы устанавливаем для поля значение 2 и используем параметр оператора xlAnd, который используется для дат и чисел.
123456 | Подложка SimpleFilter ()ActiveWorkbook.Sheets («Sheet1»). ListObjects («Table1″). Range.AutoFilter Field: = 2, Criteria1: = _»> 1500″, оператор: = xlAndКонец подписки |
Результат:
Очистите фильтр с помощью метода ShowAllData в VBA
Вы можете получить доступ к методу ShowAllData класса Worksheet, чтобы очистить фильтр. Если вы хотите очистить фильтр (-ы) таблицы, вам сначала нужно выбрать ячейку в таблице, что вы можете сделать в VBA.
Метод ShowAllData сгенерирует ошибку, если не использовать условную логику, чтобы проверить, был ли применен фильтр на листе. В следующем коде показано, как это сделать:
123456789 | Sub ClearingTheFilter ()Диапазон («Таблица1 [[# заголовков], [Продажи]]»). ВыберитеЕсли ActiveWorkbook.Worksheets («Sheet1»). FilterMode = True, тоActiveSheet.ShowAllDataКонец, еслиКонец подписки |
Очистить все фильтры из таблицы Excel
Вы можете получить доступ к методу ShowAllData класса ListObject, не выбирая сначала ячейку в таблице. В следующем коде показано, как это сделать:
123 | Подложка ClearAllTableFilters ()ActiveWorkbook.Worksheets («Sheet1»). ListObjects («Table1»). AutoFilter.ShowAllDataКонец подписки |
Удаление строки с помощью VBA
Вы можете удалить строку в базе данных вашей таблицы с помощью метода ListRows.Delete. Вы должны указать, какая строка используется по номеру строки. У нас есть следующая таблица под названием Table1.
Допустим, вы хотите удалить вторую строку в базе данных вашей таблицы, следующий код позволит вам это сделать:
12345 | Sub DeleteARow ()ActiveWorkbook.Worksheets («Sheet1»). ListObjects («Table1»). ListRows (2) .DeleteКонец подписки |
Результат:
Удаление столбца с помощью VBA
Вы можете удалить столбец из таблицы с помощью метода ListColumns.Delete. У нас есть следующая таблица под названием Table1, показанная ниже:
Чтобы удалить первый столбец, вы должны использовать следующий код:
12345 | Подраздел DeleteAColumn ()ActiveWorkbook.Worksheets («Sheet1»). ListObjects («Table1»). ListColumns (1) .DeleteКонец подписки |
Результат:
Преобразование таблицы обратно в диапазон в VBA
Вы можете преобразовать таблицу обратно в нормальный диапазон с помощью VBA. В следующем коде показано, как преобразовать таблицу с именем Table1 обратно в диапазон:
12345 | Sub ConvertingATableBackToANormalRange ()ActiveWorkbook.Sheets («Sheet1»). ListObjects («Table1»). UnlistКонец подписки |
Добавление чередующихся столбцов и форматирование ко всем таблицам на листе с помощью VBA
Вы можете получить доступ ко всем таблицам на вашем листе с помощью коллекции ListObjects. На приведенном ниже листе у нас есть две таблицы, и мы хотели бы добавить столбец с чередованием к обеим таблицам сразу и изменить шрифт раздела данных обеих таблиц на полужирный, используя VBA.
12345678910111213 | Sub AddingBandedColumns ()Dim tbl As ListObjectТусклый лист как рабочий листУстановить sht = ThisWorkbook.ActiveSheetДля каждой табл. В шт.ListObjectstbl.ShowTableStyleColumnStripes = Истинаtbl.DataBodyRange.Font.Bold = ИстинаСледующая таблицаКонец подписки |
Результат:
Создание таблицы в Access в VBA с использованием DoCmd.RunSQL
Одним из основных способов создания таблицы в Access в VBA является использование метода DoCmd.RunSQL для выполнения запроса действия с оператором SQL.
У нас есть кнопка в нашем образце формы, и когда мы нажимаем на кнопку, мы хотим создать таблицу с именем ProductsTable с двумя полями или столбцами, одно будет полем первичного ключа с именем ProductsID, а другое будет полем с именем Sales.
Чтобы создать эту таблицу, мы будем использовать следующий код:
123456 | Частная подпрограмма cmdCreateProductsTable_Click ()DoCmd.RunSQL «СОЗДАТЬ ТАБЛИЦУ ProductsTable» _& «(ProductID INTEGER PRIMARY KEY, целое число продаж);»Конец подписки |
Результат:
Фильтрация таблицы в доступе с помощью VBA
Вы также можете фильтровать таблицу в Access с помощью метода DoCmd.ApplyFilter. У нас есть наша простая таблица, показанная ниже в Access, которая называется ProductsTable.
Мы хотели бы нажать эту кнопку в нашей форме, и тогда мы увидим только продажи, превышающие 1500.
Итак, мы бы использовали следующий код для этого:
1234567 | Частная подпрограмма cmdFilter_Click ()DoCmd.OpenTable «ProductsTable»DoCmd.ApplyFilter, «[Продажи]> 1500»Конец подписки |
Результат:
Преобразовать сводную таблицу в диапазон значений |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |