Список книжной коллекции
Ведите список собственных книг, используя шаблон списка книжной коллекции. Шаблон списка книг содержит столбцы для записи сведений о книге, ее состояния, категории и места хранения. Вы можете использовать функцию фильтрации данных, чтобы найти необходимое. Упорядочите библиотеку и упростите перемещение с помощью шаблона списка книг из Excel. Это шаблон с поддержкой специальных возможностей.
Excel
Скачать
Открыть в браузере
Поделиться
Dollinsky Пользователь Сообщений: 24 |
Коллеги, прошу помощи: Спасибо! |
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
#2 11.08.2021 17:03:47
По вопросам из тем форума, личку не читаю. |
||
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
Dollinsky, цикл по всем листам книги (For Each sh in ActiveWorkBook), в нём цикл по всем умным таблицам (For Each LO in sh.ListObjects) Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
Dollinsky Пользователь Сообщений: 24 |
Спасибо! В Immediate попадает, а как на лист вывести? Скажем, Лист4 начиная со 2-й строки по столбцам B,C,D ? |
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
#5 11.08.2021 17:38:52
та же фигня + еще и лень По вопросам из тем форума, личку не читаю. |
||
Dollinsky Пользователь Сообщений: 24 |
Спасибо! Изменено: Dollinsky — 11.08.2021 18:47:55 |
sokol92 Пользователь Сообщений: 4446 |
#7 11.08.2021 19:16:20
Не должно. Проверьте:
Владимир |
||||
Dollinsky Пользователь Сообщений: 24 |
|
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#9 12.08.2021 09:51:08
Владимир, приветствую! Всё-таки я не сторонник подменять служебные имена своими, и потому переменную листа я бы назвал sh As WorkSheet или sh As Sheet Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
#10 12.08.2021 10:57:44
и потом в объектной модели появился объект SH и ты такой «ой блин все переписывать». да и
что-то не то во фразе. По вопросам из тем форума, личку не читаю. |
||||
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#11 12.08.2021 11:25:07
VBE Replace
«своими» можно было не писать, но и так корректно Изменено: Jack Famous — 12.08.2021 11:26:47 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||||
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
#12 12.08.2021 12:18:32
в нем нет, а вот в объектной модели может. По вопросам из тем форума, личку не читаю. |
||
sokol92 Пользователь Сообщений: 4446 |
#13 12.08.2021 20:41:17
Я имена привел для #2. случае с функцией VBA Msgbox, которая совсем не дружит с юникодом. Изменено: sokol92 — 12.08.2021 20:41:34 Владимир |
||
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#14 13.08.2021 09:29:36
это тип переменной
ну тут уже вкусовщина. Я, как разработчик, лучше вызову MyMsgBox с блэкджеком и прочим, чем буду вызывать MsgBox, с разным результатом в зависимости от того, есть подмена или нет Изменено: Jack Famous — 13.08.2021 09:31:01 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||||||
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
#15 13.08.2021 09:44:40 Off
да ладно , вангую будет PRDXMsgBox По вопросам из тем форума, личку не читаю. |
||
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#16 13.08.2021 09:47:43
почти: PRDX_MsgBox Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#17 13.08.2021 12:55:01
в зависимости от ситуации может очень сильно подвести, выдав ошибку типов. Например, если в книгу будет вставлен лист типа Диаграмма, либо Лист макросов, Диалоговых окон…У этих листов нет таких объектов, как таблицы и в них они не могут быть вставлены.
а нет служебного Sheet. Поэтому можно и попользовать
нет такого типа. Есть коллекция Sheets, которая подразделяется на 5 других типов:
Есть Worksheets, которая содержит только рабочие листы. И есть Worksheet — это как раз тип. А типа Sheet нет и не было. И скорее всего не будет, т.к. не может быть просто типа Sheet, т.к. его нельзя будет отнести к конкретному типу листов, а MS любит конкретику в этом плане Изменено: Дмитрий(The_Prist) Щербаков — 13.08.2021 12:55:27 Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||||||
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#18 13.08.2021 13:04:25
проверил, действительно нет, спасибо тебе и Мише с Соколом Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
#19 13.08.2021 17:36:57
да, согласен. Редко такое бывает но ради универсальности лучше так. По вопросам из тем форума, личку не читаю. |
||
0 / 0 / 0 Регистрация: 21.01.2013 Сообщений: 31 |
|
1 |
|
Создать таблицу коллекции книголюба09.11.2014, 14:57. Показов 3483. Ответов 10
Таблица содержит информацию о личной коллекции книголюба.
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
09.11.2014, 14:57 |
Ответы с готовыми решениями: Создать файл, содержащий сведения о личной коллекции книголюба
Создать файл, содержащий сведения о личной коллекции книголюба Создать класс, содержащий сведения о личной коллекции книголюба 10 |
414 / 262 / 82 Регистрация: 27.10.2012 Сообщений: 860 |
|
09.11.2014, 15:16 |
2 |
И Вам желаю не хворать.
0 |
0 / 0 / 0 Регистрация: 21.01.2013 Сообщений: 31 |
|
09.11.2014, 15:21 [ТС] |
3 |
Сарказм? Можно по подробней, а то я что то не понял.
0 |
414 / 262 / 82 Регистрация: 27.10.2012 Сообщений: 860 |
|
09.11.2014, 15:51 |
4 |
Что это вообще? Задание или похвастаться решили? Если задание то где попытки решить его или вопрос по конкретной задаче а не всё сразу? Как это надо решить — формулы аль VBA? Выводить результаты на лист, месседжбокс, а может в файл? А про здоровье — не берите в голову.
0 |
0 / 0 / 0 Регистрация: 21.01.2013 Сообщений: 31 |
|
09.11.2014, 15:57 [ТС] |
5 |
Я понял, приношу извинения, задание в принципе не сложное, но я не понимаю что за «Шифр книги» где его узнать, и еще как сделать так, например что бы когда я вводил год в пустую ячейку, то что бы мне показали количество книг которые сделаны в этом году, которые указаны в таблице. Еще раз приношу извинение, не подумал.
0 |
414 / 262 / 82 Регистрация: 27.10.2012 Сообщений: 860 |
|
09.11.2014, 16:18 |
6 |
Шифр, я думаю, просто уникальный набор символов, у каждой книги свой, придумать надо. Можно сделать что угодно, вот только таблицу надо Вам накидать собственноручно.
0 |
0 / 0 / 0 Регистрация: 21.01.2013 Сообщений: 31 |
|
09.11.2014, 16:55 [ТС] |
7 |
Могу ли я как то скинуть вам таблицу, которую я сделал, там есть формула, которая должна делать поиск, но она не работает, и я не понимаю почему, могли бы вы помочь мне, пожалуйста. Только вот как скинуть Excel файл. Добавлено через 2 минуты Добавлено через 2 минуты
0 |
414 / 262 / 82 Регистрация: 27.10.2012 Сообщений: 860 |
|
09.11.2014, 17:48 |
8 |
Только вот как скинуть Excel файл. расширенный режим / управление вложениями и формулами я не гарантирую Добавлено через 37 минут
1 |
0 / 0 / 0 Регистрация: 21.01.2013 Сообщений: 31 |
|
09.11.2014, 18:01 [ТС] |
9 |
Устроит.
0 |
414 / 262 / 82 Регистрация: 27.10.2012 Сообщений: 860 |
|
09.11.2014, 23:23 |
10 |
РешениеГлянул в 1-й пост — обычный фильтр всю эту красоту делает.
1 |
0 / 0 / 0 Регистрация: 21.01.2013 Сообщений: 31 |
|
10.11.2014, 17:44 [ТС] |
11 |
Знал бы я как его сделать к вам бы не оброщался б. Добавлено через 17 часов 50 минут
0 |
Microsoft Excel позволяет открывать несколько книг одновременно, но переключаться между всеми открытыми книгами непросто. Поэтому вы можете перечислить все открытые книги в списке, чтобы легко переключаться между этими книгами в Excel. В этой статье мы покажем вам, как составить список всех открытых книг для удобной навигации в Excel.
Просто перечислите все открытые книги с VBA
Составьте список всех открытых книг и легко переключитесь на книгу с помощью VBA
Составьте список всех открытых книг и легко переходите к рабочей книге с помощью замечательного инструмента
Просто перечислите все открытые книги с VBA
В этом разделе вы узнаете, как использовать код VBA для вывода списка всех открытых книг в Excel.
1. Нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули.
2. Затем скопируйте и вставьте приведенный ниже код VBA в редактор кода.
VBA: список всех открытых имен книг в Excel
Sub ListWorkbooks()
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Out put to (single cell)", xTitleId, WorkRng.Address, Type: = 8)
Set WorkRng = WorkRng.Range("A1")
xNum1 = Application.Workbooks.Count
For i = 1 To xNum1
xNum2 = Application.Workbooks(i).Sheets.Count
WorkRng.Offset(i - 1, 0).Value = Application.Workbooks(i).Name
For j = 1 To xNum2
WorkRng.Offset(i - 1, j).Value = Application.Workbooks(i).Sheets(j).Name
Next
Next
End Sub
3. Запустите код VBA, нажав кнопку F5 ключ. в KutoolsforExcel диалоговом окне укажите ячейку для размещения списка книг, а затем щелкните значок OK кнопка. Смотрите скриншот:
Затем перечисляются все открытые книги с соответствующими листами.
Трудно обрабатывать код VBA? Вы можете добиться этого через третий метод с кликами.
Составьте список всех открытых книг и легко переключитесь на книгу с помощью VBA
Если вы хотите перечислить все книги, чтобы легко переключаться между ними, попробуйте использовать VBA следующим образом:
1. нажмите другой + F11 для открытия Microsoft Visual Basic для приложений окно. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули.
2. Скопируйте и вставьте следующий код VBA в открытое окно модуля.
Код VBA: перечислить все открытые книги и перейти к книге
Sub SelectWB()
Dim xWBName As String
Dim xWb As Workbook
Dim xSelect As String
For Each xWb In Application.Workbooks
xWBName = xWBName & xWb.Name & vbCrLf
Next
xTitleId = "KutoolsforExcel"
xSelect = Application.InputBox("Enter one of the workbooks below:" & vbCrLf & xWBName, xTitleId, "", Type: = 2)
Application.Workbooks(xSelect).Activate
End Sub
3. нажмите F5 ключ для запуска кода. Потом KutoolsforExcel появится диалоговое окно со списком всех открытых книг. Если вы хотите перейти к указанной книге, введите имя этой книги в поле и нажмите кнопку OK кнопка. Смотрите скриншот:
Составьте список всех открытых книг и легко переходите к рабочей книге с помощью замечательного инструмента
Для Панель навигации of Kutools for Excel, все открытые книги будут автоматически перечислены на панели, чтобы вы могли легко перемещаться между всеми открытыми книгами. Вам просто нужно щелкнуть одну из открытых книг, и она сразу же перейдет к этой книге.
Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Skip to content
На чтение 4 мин. Просмотров 2.3k.
Что делает макрос: Когда рабочая книга содержит несколько сводных таблиц, часто нужно иметь список инвентаризации, в котором изложены основные сведения о сводных таблицах. При этом в списке, вы можете быстро просмотреть важную информацию, такую как местоположение каждой сводной таблицы, расположение исходных данных каждой сводной таблицы, индекс кэша и т.д.
Следующий макрос выводит такой список.
Содержание
- Как макрос работает
- Код макроса
- Как это код работает
- Как использовать
Как макрос работает
Когда вы создаете переменную объекта PivotTable, вы открываете все свойства сводной таблицы — такие как имя, местоположение, индекс кэша и т. д. В этом макросе цикл проходит по каждой сводной таблице, извлекает определенные свойства на новый лист.
Код макроса
Sub SpisokSvodnihTablicKnigi() 'Шаг 1: Объявляем переменные Dim ws As Worksheet Dim pt As PivotTable Dim MyCell As Range 'Шаг 2: Добавляем новый лист с заголовками столбцов Worksheets.Add Range("A1:F1") = Array("Pivot Name", "Worksheet", _ "Location", "Cache Index", _ "Source Data Location", _ "Row Count") 'Шаг 3: Устанавливаем якорь курсора в ячейке А2 Set MyCell = ActiveSheet.Range("A2") 'Шаг 4: Запускаем цикл по листам книги For Each ws In Worksheets 'Шаг 5: Запускаем цикл по всем сводным таблицам For Each pt In ws.PivotTables MyCell.Offset(0, 0) = pt.Name MyCell.Offset(0, 1) = pt.Parent.Name MyRange.Offset(0, 2) = pt.TableRange2.Address MyRange.Offset(0, 3) = pt.CacheIndex MyRange.Offset(0, 4) = Application.ConvertFormula _ (pt.PivotCache.SourceData, xlR1C1, xlA1) MyRange.Offset(0, 5) = pt.PivotCache.RecordCount 'Шаг 6: Переместить курсор строкой вниз и установить якорь Set MyRange = MyRange.Offset(1, 0) 'Шаг 7: Работа через все сводные таблицы и листы Next pt Next ws 'Шаг 8: Соответствие размеров столбцов ActiveSheet.Cells.EntireColumn.AutoFit End Sub
Как это код работает
- Шаг 1 объявляет объект под названием WS. Это создает контейнер памяти для каждого рабочего листа. Затем мы объявляем объект под названием PT, который содержит
каждый цикл PivotTable . Наконец, мы создаем переменную диапазона под названием MyCell. Эта переменная действует как курсор, когда заполняет список инвентаризации. - Шаг 2 создает новый рабочий лист и добавляет заголовки столбцов, которые варьируются от А1 до F1. Обратите внимание, что мы можем добавить заголовки столбцов, используя простой массив, который содержит наши метки заголовка. Этот новый рабочий лист остается активным.
- Так же, как вы бы вручную помещали курсор в ячейку, если вы должны были начать вводить данные, шаг 3 помещает MyCell курсор в ячейку A2 активного листа. Это наша точка привязки, что позволяет нам перейти отсюда. На протяжении всего макроса, вы используете свойство offset. Свойство offset позволяет передвигать курсор Offset х количество строк и х количество столбцов от точки привязки. Например, Range (A2) .offset (0,1) будет перемещать курсор на один столбец. Если мы хотим, переместить курсор на одну строку вниз, мы вводим Range(A2). Offset(1, 0). В макросе, мы перемещаемся с помощью
Offset MyCell. Offset (0,4) будет перемещать курсор на четыре столбца справа от анкерной ячейки. После того, как курсор будет на месте, мы можем ввести данные. - Шаг 4 начинает зацикливание, говоря Excel, что мы хотим оценить все рабочие листы в этой книге.
- Шаг 5 перебирает все сводные таблицы в каждом листе. Для каждого PivotTable он находит, извлекает соответствующее свойство и заполняет таблицу на основании положения
курсора (шаг 3). Мы используем шесть свойств: Name, Parent.Range, TableRange2, CacheIndex, PivotCache.SourceData и PivotCache. RecordCount.
Свойство Name возвращает имя сводной таблице.Свойство Parent.Range дает нам лист, где постоянно находится PivotTable. Свойство TableRange2.Address возвращает диапазон, где находится PivotTable. Свойство CacheIndex возвращает порядковый номер кэша сводной для сводной таблицы.
Кэш-память поворота представляет собой контейнер памяти, которая хранит все данные для сводной таблицы. При создании новой сводной таблицы, Excel делает снимок исходных данных и
создает кэш возврата. Каждый раз при обновлении сводной таблицы, Excel приходит к исходным данным и делает еще один снимок, тем самым обновляя кэш возврата. Каждый кэш имеет свойство SourceData, который идентифицирует местоположение данных, используемых для создания кэш возврата. PivotCache. SourceData свойство сообщает нам, какой диапазон будет призван, когда мы обновить сводную таблицу. Вы также можете вытащить количество записей из исходных данных, используя PivotCache.Recordcount. - Каждый раз, когда макрос встречает новую сводную таблицу, он перемещает курсор вниз MyCell строку, начиная новую строку для каждого сводной таблицы.
- Шаг 7 говорит Excel повторить цикл для всех листов. После того, как все листы были оценены, макрос переходит к последнему шагу.
- Шаг 8 завершает с небольшим количеством форматирования размеров столбцов, чтобы соответствовало данным.
Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
- Активируйте редактор Visual Basic, нажав ALT + F11.
- Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
- Выберите Insert➜Module.
- Введите или вставьте код.