![]() |
Можно ли удалить ненужные слои структуры?
Возникла проблема, что файл Excel представляет собой структуру в три уровня, раскрывающуюся плюсиками.
Но нужно перемножить два столбца только верхнего уровня с результатом в третьем столбце, так чтобы находящееся в этих двух столбцах в скрытых слоях структуры не участвовало в определении суммы по третьему столбцу. Но получается, что перемножаются все слои структуры в этих двух столбцах и сумма вычисляется не по видимому верхнему слою структуры, а по всем уровням. Если удалять структуру имеющейся кнопкой на вкладке Данные, то строки из нижних уровней структуры просто встанут между строками верхнего уровня, мешая. Можно ли удалить данные только отдельных слоев структуры, хотя чтоб пустые строки остались? |
pavsem7, образец Рабочей книги с примерами и наглядными пояснениями приветствуется.
|
Цитата:
Строк в книге много, несколько тысяч, поэтому вручную ничего не получится. Видно, что колонка Стоимость, которая должна быть произведением Цены на КонРезерв посчитана по разным товарам неправильно, некоторые клетки вообще пустые, в 15-ой строке результат завышен и т.п. Подсчет результата(итога) по колонке Стоимость нужен только по верхнему слою, а спрятанные слои под крестиками, т.е., например, строки 16, 17, 19,20,21,23,24 и т.д. не должны давать слагаемых в эту сумму. Если же просто перемножить столбцы Цена и КонРезерв, то эти спрятанные строки дают слагаемые, сумма по товарам получается завышенной. Цель - удалить нижние слои из книги, т.е. те самые спрятанные строки. Тогда итог стоимости правильно посчитается. |
pavsem7, а нельзя ли то же, но с формулами?
|
Достаточно странная организация структуры…
Вы уверены, что речь про первый уровень структуры? Там ровно две строки, и обе с пустым содержимым в искомых ячейках. Вот для второго уровня структуры: Код:
Option Explicit Это то, что Вы хотели? Главный вопрос — в определении размеров диапазона (в примере — «G6:G117») на реальных данных, «ручками» ведь не будете задавать всякий раз. На что можем ориентироваться? Цитата:
|
Цитата:
Почему Вы называете лист TDSheet? Цитата:
А результат начальству быстрее нужен. У меня попутный вопрос по применению: я записал Вашу процедуру в макрос и запустил, при этом файл надо сохранять как xlsm. Но можно ли запускать этот макрос-процедуру внешним образом, чтоб просто обрабатывать файл xlsx, а внутри процедура не хранилась? |
Цитата:
|
Цитата:
![]() (когда курсор мышки примет двунаправленную форму) и тяните его вправо — сами увидите. Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
|
pavsem7, код там таки есть, но он заботливо скрыт от пользователя :).
Цитата:
Код:
Option Explicit Цитата:
pavsem7, может имеет смысл сделать код не в Excel, а во внешнем скрипте? Тогда сможете, скажем, банально перетаскивать на скрипт (или на ярлык на скрипт) потребный файл Рабочей книги в Проводнике, использовать его запуск из Планировщика, пакетного файла или же непосредственно из 1С (если экспорт этого отчёта 1C в Рабочую книгу у Вас делается программно). |
Цитата:
Цитата:
Мне годится тот короткий скрипт, который был раньше. |
Цитата:
Цитата:
Цитата:
Скрытый текст
Код:
Option Explicit |
Время: 22:20. |
Время: 22:20.
© OSzone.net 2001-