|
Объект ListObject
|
|||
---|---|---|---|
#18+
Здравствуйте! Имеется объект таблица на листе. Код: vbnet 1.
Колонки "Город", "ТТ" и "Отгрузки". Нужно скопировать эту таблицу, но с условием Город = "Город1", и вставить в другую книгу. У объекта ListObject есть возможность копировать определенные строки (не фильтр), заданные по условию, и вставлять эти строки? Или для решения данной задачи надо использовать какой то другой объект? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 15:14 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
ferzmikkопределенные строки (не фильтр), заданные по условиюА в чем разница между строками, заданными по описанному условию, и фильтром? У каждого объекта ListObject есть свой автофильтр, независимый от автофильтра всего листа, его используйте. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 17:33 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
Казанскийferzmikkопределенные строки (не фильтр), заданные по условиюА в чем разница между строками, заданными по описанному условию, и фильтром? У каждого объекта ListObject есть свой автофильтр, независимый от автофильтра всего листа, его используйте. По сути нужно взять таблицу и вставить в другой файл, но без строк города "Город2". При фильтре отбираем Город1, а Город2 скрыт, но присутствует в таблице. Надо чтобы вообще не было строк Город2. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 21:14 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
ferzmikk, копирование строк, отобранных фильтром Код: vbnet 1.
dest - куда копировать, например otherSheet.ListObjects(1).databodyrange.cells(1) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 21:30 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
Казанскийferzmikk, копирование строк, отобранных фильтром Код: vbnet 1.
dest - куда копировать, например otherSheet.ListObjects(1).databodyrange.cells(1) Прежде чем копировать на другой лист, надо на другом листе создать пустой ListObject? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2016, 07:29 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
а то отображает ошибку ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2016, 11:15 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
ferzmikkПрежде чем копировать на другой лист, надо на другом листе создать пустой ListObject?Необязательно, это было как пример. Можно просто в диапазон Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2016, 17:57 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
КазанскийМожно просто в диапазон Код: vbnet 1. 2. 3.
Теперь копирует нужные строки, только заголовки не копирует. Вместе с заголовками возможно? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2016, 20:44 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
ferzmikk, DataBodyRange замените на Range . Здесь описано, как обращаться к разным частям умной таблицы: https://www.thespreadsheetguru.com/blog/2014/6/20/the-vba-guide-to-listobject-excel-tables ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2016, 21:02 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
Казанскийferzmikk, DataBodyRange замените на Range . Получилось, еще добавил преобразовать в ListObject, получился такой исходный код. Не слишком сложно написал? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2016, 12:34 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
Казанскийferzmikk, Здесь описано, как обращаться к разным частям умной таблицы: https://www.thespreadsheetguru.com/blog/2014/6/20/the-vba-guide-to-listobject-excel-tables Спасибо за ссылку! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2016, 12:35 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
Макрос неправильно определяет количество видимых строк в автофильтре. Почему так? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 16:06 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
ferzmikk, F1 - Range.Rows PropertyWhen applied to a Range object that’s a multiple selection, this property returns rows from only the first area of the range.Т.е. в несвязном диапазоне .Rows относится только к первой области. Пичалька :) Значит надо делать цикл по областям (.Areas) и суммировать их .Rows.Count, или скопировать-вставить все куда-то, получить непрерывный диапазон и брать его число строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 16:33 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
А лучше использовать функцию листа ПРОМЕЖУТОЧНЫЕ.ИТОГИ Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 16:39 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
А вот .Cells в несвязном диапазоне - это все ячейки, а не только первой области! Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 20:12 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
КазанскийА лучше использовать функцию листа ПРОМЕЖУТОЧНЫЕ.ИТОГИ Код: vbnet 1. 2. 3.
Да, работает! Во втором аргументе функции SUBTOTAL нужно вставить переменную. Написал, но не правильно Код: vbnet 1.
Как правильно написать? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 21:52 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
Вот еще. Нужно скопировать таблицу на другой лист, где - копироваться могут либо все строки, либо не все (фильтр строк по условию) - копируются не все колонки - копируется другая последовательность колонок ("Город", "Мера1", "Мера5", "Мера2" и "Мера4") Как это делается? Еще такой нюанс. Если на вкладке "Исходные данные" в таблице включен автофильтр, но не отобраны строки, то копируется таблица с автофильтром. Если отобраны строки - то копируестя без автофильтра. Почему? И в тот момент, после того как скопировали с отбором строк ЛистОбработанныйИсходник.ListObjects.Count равно нулю. Почему ноль, если на вкладке "Обработанные данные" есть сама таблица? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2016, 09:52 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
ferzmikkЕсли на вкладке "Исходные данные" в таблице включен автофильтр, но не отобраны строки, то копируется таблица с автофильтром. Если отобраны строки - то копируестя без автофильтра. Почему? И в тот момент, после того как скопировали с отбором строк ЛистОбработанныйИсходник.ListObjects.Count равно нулю. Почему ноль, если на вкладке "Обработанные данные" есть сама таблица?Видимо, логика такая - если копируется весь диапазон ListObject, на листе назначения создается ListObject. Если же копируется набор строк, то ListObject не создается, ListObjects.Count=0. Скопировать данные в другой последовательности столбцов и одновременно отфильтровать можно расширенным фильтром. Хорошая статья тут: http://www.planetaexcel.ru/techniques/2/197/ ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2016, 10:28 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
КазанскийСкопировать данные в другой последовательности столбцов и одновременно отфильтровать можно расширенным фильтром. Хорошая статья тут: http://www.planetaexcel.ru/techniques/2/197/ Не нашел про другую последовательность и отсечение столбцов. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2016, 13:10 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
Может быть надо скопировать таблицу в виртуальную память, там удалить не нужные колонки и там же поменять порядок колонок, потом вставить на лист? Или копировать по одной колонке в нужной последовательности? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 10:30 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
ferzmikk, да как угодно можно. А Расширенный фильтр Вы освойте, для начала из меню - это полезная штука. Про отбор столбцов: F1 - Отбор строк с помощью расширенного фильтраПри копировании отобранных строк в другое место можно указать столбцы, включаемые в копию. Перед отбором скопируйте заголовки нужных столбцов в первую строку области вставки результатов. Выполняя фильтрацию, введите ссылку на скопированные заголовки столбцов в поле Поместить результат в диапазон. Скопированные строки будут включать только те столбцы, заголовки которых были скопированы. То есть на другом листе в ряд ячеек вводите "Город", "Мера1", "Мера5", "Мера2" и "Мера4" и указываете этот диапазон в поле Поместить результат в диапазон. Расширенный фильтр кстати сам почистит столбцы ниже этих заголовков перед вставкой отфильтрованных данных. Посмотрите например http://www.cyberforum.ru/vba/thread1672727.html перестановка столбцов http://www.cyberforum.ru/vba/thread1592028.html несколько критериев для одного поля http://www.cyberforum.ru/vba/thread1526195.html про критерий-формулу http://www.cyberforum.ru/vba/thread1438381.html про размещение критерия фильтра на другом листе или книге ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2016, 01:07 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
Делаю попроще. Копирую таблицу на другой лист. Потом перестановка, и далее удаление ненужных колонок. Пока без фильтра. На одной строке не работает. Как надо написать правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2016, 16:31 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
я пас, надоела эта тема ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2016, 17:12 |
|
Объект ListObject
|
|||
---|---|---|---|
#18+
ferzmikkДелаю попроще. Копирую таблицу на другой лист. Потом перестановка, и далее удаление ненужных колонок. Пока без фильтра. На одной строке не работает. Как надо написать правильно? Ну если так, то можно сначала набрать данные, затем создать таблицу Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2016, 03:17 |
|
|
start [/forum/topic.php?all=1&fid=61&tid=2172863]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 153ms |
0 / 0 |