Я понял, но в этом и была проблема... На листах, включая и само имя листа, не было информации (во всяком случае для меня), по которой можно было бы однозначно определить последнюю строку диапазона листа с данными для копирования в протокол. Но вы меня натолкнули на хорошую на мой взгляд мысль... В сетку на 32 участника в ячейку A1 прописать "С32", в сетку на 16 участников, - "С16", и т.д. до сетки на 2 участника. Тогда можно будет опираться на ячейку A1. Если A1 = "С32" то последняя строка для копирования 74-я, если Если A1 = "С16" то последняя строка для копирования 39-я, если Если A1 = "С8" то последняя строка для копирования 23-я, если Если A1 = "С4" то последняя строка для копирования 15-я, если Если A1 = "С2" то последняя строка для копирования 9-я.Вопрос такой: по какому (каким) признаку можно определить последнюю строку диапазона листа с данными для копирования в протокол? Однозначно ответив на этот вопрос мы решим все проблемы.
Найти нужное значение в таблице по условию
Модератор: Naeel Maqsudov
Да, но из этих 74-х строк заполненных может оказаться меньше? Я имею ввиду заполненных, предназначенных для копирования. Или если уж "A1" = С8, то однозначно копировать 23 строки?Если A1 = "С32" то последняя строка для копирования 74-я...
Еще можно "вытаскивать" сетку (32, 16, 8 и т. д.) из имени обрабатываемого листа (если, конечно, такие цифры там присутствуют) и, в зависимости от этого, копировать соответствующее количество строк.
Указанные последние строки будут заполнены, и их однозначно копировать...
Нет, из имени не получится, т.к. имена не будут связаны ни со словом сетка, ни с цифрами 32, 16, 8, 4 и 2. Имена листов будут в таком виде: мальчики 9-10 лет (до 27 кг), юноши 13-14 лет (до 44 кг), юниоры 17-18 лет (до 70 кг) и т.д. И какая будет использоваться сетка, будет зависеть от количества спортсменов в данной категории, что предугадать невозможно.Еще можно "вытаскивать" сетку (32, 16, 8 и т. д.) из имени обрабатываемого листа (если, конечно, такие цифры там присутствуют) и, в зависимости от этого, копировать соответствующее количество строк.
Посмотрите. Проверьте.
- Вложения
-
- Book7..zip
- (70.33 КБ) 41 скачивание
Происходит разрыв информации с листа "Сетка (2 уч.)". На последнем примере этого не видно, т.к. этот лист последний и информация с него начинается с начала страницы, но на новом вложении это видно. Я сделал две копии листа "Сетка (4 уч.)" и вставил их перед листом "Сетка (2 уч.)". Теперь, после создания протокола, пятая страница начинается с информации листа "Сетка (4 уч.) (2)", следом идёт информация листа "Сетка (4 уч.) (3)", т.к. она умещается на странице, и остаётся 8 свободных строк. А если учитывать разрыв в одну строку перед следующей информацией, то 7 свободных строк. По условиям, информация листа "Сетка (2 уч.)" должна быть скопирована на следующую (шестую) страницу, т.к. она содержит 9 строк и не умещается на пятой странице, но этого не произошло...
- Вложения
-
- Book7.1..zip
- (91.23 КБ) 49 скачиваний
Я так понял, это происходит из-за того, что подсчёт "уместится или не уместится информация с последующего листа на странице" ведётся без учёта разрыва в одну строку, и если умещается, то данные копируются с добавлением разрыва. Так например "Сетка (4 уч.)" + "Сетка (4 уч.)" + "Сетка (2 уч.)" = 39 строк без учёта разрыва, ровно столько, сколько содержится на странице. Поэтому код считает, что информация умещается и копирует ее на страницу с добавлением двух разрывов в одну строку. В итоге с листа "Сетка (4 уч.)" две строки информации сползают на следующую страницу. Подсчёт "уместится или не уместится информация с последующего листа на странице" должен производиться с учётом разрыва...
Посмотрите другой вариант. Полностью изменил алгоритм определения разрывов страниц.
Проверьте в различных сочетаниях и количествах листов с разными сетками.
Проверьте в различных сочетаниях и количествах листов с разными сетками.
- Вложения
-
- Book8..zip
- (88.87 КБ) 62 скачивания
Сейчас вроде бы все нормально, при различных комбинациях все распределяется верно! Спасибо Вам огромное! Даже не знаю, как еще Вас отблагодарить, вы столько для меня сделали и ни разу ничего не попросили взамен... Не часто такое сейчас встречается... Если я что-то смогу для Вас сделать, или чем-то помочь, - скажите, или напишите в личку! Буду рад оказаться полезным для Вас! Еще раз Спасибо! Уважение и низкий поклон...