![]() |
Доброго времени суток. Вопрос в следующем:
при открытии большого числа файлов Excel 2007 (книги по несколько мегабайт с ссылками на внешние файлы) и хотя бы одного файла в старом формате (xls) при сохранении excel может повиснуть более чем на 30 мин. При этом все остальные программы работают без тормозов. Компьютер Core2Duo E6400 с 2 гигами оперативки. Кто-нибудь сталкивался? Как это лечится? |
Nightfall, тыж сам пишешь: при открытии большого числа файлов Excel 2007 ... и хотя бы одного файла в старом формате (xls) при сохранении excel может повиснуть более чем на 30 мин.
проблема быстрее всего именно в этом. Книги большие, при сохранении в старом формате происходит преобразование и тормоза. PS я не открываю много книг и большого веса сразу. Я не пользую 2007, у меня 2002 но если попадается книжка из "старых запасов" то можно заметить определенные тормоза при работе именно со старым форматом при закрытии/сохранении |
В том то и дело что файл в старом формате может быть очень маленьким и только с данными (без связей), соответственно преобразование, по идее, не должно так подвешивать excel. Обычно сохраняю файлы без изменения расширения.
|
Nightfall,
Alex Dark имел в виду сохранение в "неродном" для данной версии экселя формате, изменение расширения тут нипричем. с другой стороны, подвисание на полчаса на таком железе... имхо это нездраво, даже от старости форматов. а насколько много открывается файлов? |
Может зависнуть при 4-5 файлах по 5-6 Мб (в новом формате) и одном старом (несколько Кб).
|
Nightfall, а файло у тебя случаем не в сети лежит?
Замечал за Экселем разницу в производительности при работе по сети и локально. Иногда эта разница достаточно существенная. Цитата:
Поэтому возникает интересные вопросы. 1. Какой же все таки у тебя "старый формат". 2. Какие надстройки ты себе поставил. 3. Может попробовать (кстати когда появился 97 офис это только и помогало ликвидировать глюки огромного количества книг и листов формата 95, 4, 3 и еще чего то тама) Открыть. Сохранить как с указанием "нового формата". Закрыть. Естественно предварительно сделай архивную копию. И еще, если файла много, то проще это сотворить макросом. Это уж как шуточное предположение, но в каждой шутке есть доля правды 4. Батенька, а у вас случайно не вирь какой-нить обитает |
Файлы лежат локально.
1. Старый формат xls, новый xlsx. 2. Дополнительных надстроек (по сравнению со стандартными установками) нет. 3. По возможности так и стараюсь делать. Но, т.к. у внешних пользователей в основном стоит старый офис, достаточно часто приходится работать одновременно и в старом и в новом формате. 4. Ну, NOD32 по крайней мере ничего не находит. Такая проблема, насколько я понял покопавшись в интернете, есть не только у меня, это какой-то врожденный косяк 2007. См., например, здесь: http://forums.microsoft.com/technet-ru/ShowPost.aspx?PostID=2399857&SiteID=40 |
доброго времени суток.
искала - не нашла... у меня такая проблема, скопировала в файл экселя список, он стал весил 3 Мб. в чем может быть проблема? список не большой, был скопирован с другого экселевского файла. |
Может попробовать скопировать в виде только текста.
|
Цитата:
первая, не понял в чем проблемма вторая, если я всетаки понял, CTRL+A Формат, строка, отобразить |
есть вопрос. его трудно сформулировать, однако допек уже нереально. косяк касается именно 2007 экселя, т.к. в 2003-м такой проблемы небыло.
как при задании правил условного форматирования для выделенного диапазона указать этот самый диапазон не абсолютной ссылкой типа $A$8:$AD$8 и ссылкой без знаков $ в указании строки - $A8:$AD8. обьясню зачем такой изврат - так повелось еще со старых экселей что строка, вернее дата в ней сравнивается с датой указанной в абсолютной ячейке вне таблицы, в шапке например, либо тупо =СЕГОДНЯ(). таким образом когда дата подходит к дате икс, вся строка становится цветом все горячее и горячее, тем самым обращая внимание планктона на то, что дата подходит и пропускать его вредно для здоровья. с 2003-м проблем небыло, все форматировалось убогенько 3-я условиями, но как надо и копирование форматов распространялось на все строки данной таблицы. идиллия вобщем. что же делает умный 2007-й эксель - как только в условном форматировании жмешь "применить" ибо "ок", эта сволочь перед указанием строки везде ставит $, делая тем самым невозможным скопировать эти гребанные форматы на весь диапазон с привязкой к номеру конкретной строчки. я уже моск себе сломал как его отучить от этой гадости, справка говорит юзай либо относительные, либо абсолютные ссылки. однако на практике эксель ложил на то что написано в справке и везде тулит абсолютные. научите как быть |
Вложений: 1
korotetsky, если чесно, то проблемму понял примерно. 2007 не пользую, но попытка удалась.
Для одной ячейки сделал условие: условное форматирование, Управление правилами, создать правило а потом инструментом кисть распространил на остальные ячейки. Если у тебя не так, то давай пример в студию Если я правильно понял твою проблемму, вот файлец. Делал так как описал выше. Главное правильно расположить последовательность условий |
Вложений: 1
во-первых, эксель ругается при сохранении на кривизну форматов,
во вторых даже при использовании 2007-й версии мне нужен файл xls, т.к. не у всех есть 7-я версия (пока во всяком случае) остальной в аттаче, надеюсь я доходчиво описал эту корявую проблему. |
Вложений: 1
korotetsky, и так.
1. Выдели весь диапазон и очисть условное форматирование. Эта скатина накладывает условия. Проблемма в этом. 2. Создай правило условного форматирования только для одной ячейки (я экспериментировал на е10). 3. После проверки что все работает, укажи диапазон действия условия А10-G13 Вот и все. До кучи кидаю твой же файл сделаный в 2007 и раскиданным условным форматированием на диапазон А10-G13. PS. C кисточкой не пробовал, извини, 2007 не на моей машине. |
Цитата:
спасибо, попробую. как месяц только закончится, ибо щас край просто |
Вложений: 1
Здраствуйте.
Кажется уже мелькал какой то такой скрипт, но чтото пересмотрел, никак не нашол. Нужно два скрипта на excel 1. Таблица А 111111111 222@:;zxf222 333333333 4444444 555555555 66666666 777 8888888 9999фф999ff999 Таблица B 222@:;zxf222 4444444 77777777 888 Скрипт должен поместить в таблицу C следующее: Таблица C 111111111 333333333 555555555 66666666 777 8888888 9999фф999ff999 То есть в таблице B есть ячейки которые равны ячейкам в таблице A, мы их находим и вычитаем из таблицы A и отсавшиеся выводим в таблице C. 2. Лист 1 А B 1:1@1:@ book.gooodd 2:2@2:@ cooodrrrrrrrr 3:3@3:@ faaaaaafaaaa 4:4@4:@ groonnnnnnn 5:5@5:@ zooorrrrrrrrrr Лист 2 A 1:1@1:@ 2:2@2:@ 4:4@4:@ Наш скрипт должен поместить на Лист 3 следующее Лист 3 A B 1:1@1:@ book.gooodd 2:2@2:@ cooodrrrrrrrr 4:4@4:@ groonnnnnnn Ну как бы думаю понятно как он должен сделать... берёт ячейку A из Листа 2, находит соответствующую ей ячейку на листе 1 в таблице И и выводит их вместе на Листе 3. В принцыпе можно всё сделать и на один лист... Заранее безмерно благодарен. p.s. прикрепляю файлы с примерными шаблонами pp.s. таких строк в обоих примерах будет достаточно много, чтото около 10000 |
[offtop]korotetsky, Моё имхо, но нахрена было делать совершенно новый интерфейс? Я нашел две вещи, которые не смог сделать в ворде, это не принципиальные веши, но для избавления от этих приблуд пришлось грузить 2003. Так же и с экселем. Но в случае условного форматирования боюсь что ты не прав. Вернее не совсем понял новых "прелестей жизни". Новые возможности условного форматирования немного расширены, просто это дюже наворочено и очень не привычно[/offtop]
добавлено через 23 минуты grooogler это тебе поможет в первом и втором случае Код:
=ЕСЛИ(ЕНД(ПОИСКПОЗ(A1;Лист2!A$1:A$18;0));1;0) на листе 1 в первую строку любой колонки кидаешь и копируещь на нужный диапазон. Далее фильтр ... PS И обрати внимание на диапазон поиска в формуле :biggrin: ps2 найди здесь мои сообщения, найдешь и результат |
Понадобился вот такой вот макрос.
Таблица А: 111111:ппппппп@111111:ппппппп@55345.ftp.543534534.ru/53453453.ru/www вававававава:oojaiH4j@вававававава:oojaiH4j@neels.ru ..........:444444444444@..........:444444444444@444444444444444444.ru prima:fffffffffffff@prima:fffffffffffff@gral.rudddd Таблица В (Результат) 111111:ппппппп@55345.ftp.543534534.ru/53453453.ru/www вававававава:oojaiH4j@neels.ru ..........:444444444444@444444444444444444.ru prima:fffffffffffff@gral.rudddd Как именно он должен это сделать. В наших строках присутствует повторение некоторых вещей через @ "111111:ппппппп@" и "111111:ппппппп@" "вававававава:oojaiH4j@" и "вававававава:oojaiH4j@" "..........:444444444444@" и "..........:444444444444@" "prima:fffffffffffff@" и "prima:fffffffffffff@" Вот такие дубли и надо убрать во всех строках Таблицы А, и получившееся поместить в Таблицу В. Всё остальное оставляем без изменений. Дубли убираем только вот по тому принцыпу что я написал выше, то есть "*:*@". Если строка не содержит никаких таких дублей - ничего в ней не меняя тоже пишем её в Таблицу В. Заренее спасибо. p.s. шаблон здесь http://slil.ru/26937210 |
1. определяем количество @. Ячейка в колонке H=ЧислоВхождений(A3;"@";"true")
Код:
Function ЧислоВхождений(СтрокаГдеИщем As String, СтрокаЧтоИщем As String, ТочноеСравнение As Boolean) As Integer 3. определяем позицию второй @ или 0: j=ЕСЛИ(H3>1;НАЙТИ("@";ПСТР(A3;I3+1;100);1)+I3;0) 4. определяем содержимое до первой @: k=ПСТР(A3;1;I3) 5. определяем содержимое до второй @: L=ПСТР(A3;I3+1;I3) 6. Сравниваем: M=(K3=L3) 7. Результат: N=ЕСЛИ(M3;ПСТР(A3;I3+1;100);A3) А чтобы скопировать колонку М на другой лист цепляй на кнопку макрос Код:
Sub MyCopy() |
Цитата:
|
cheerio, поинтересоваться версией не приходило в голову ;)? на скринах максимум 2003-я версия, с которой проблем нету, как уже упоминалось
|
Цитата:
У меня 2003, но я спецом ходил на машину с 2007, не сразу но все получилось, вроде как и отписал об этом. Главное - сначала очистить все условные форматирования, а потом начать создавать новые. Иначе они накладываются так что без бутылки не разобраться... |
Alex Dark, не тот эффект что в 2003-м экселе. наложить их не есть проблема, как в том что они не наследуются по нормальному. состояние "бзебутылковой неразберихи" начинается сразу после вставки куда-нибудь пустой строки, переносе строки и т.п.
признаться меня подзапаривать начал этими выходками 2007-й эксель. буквально позавчера народ бился с заливками ячеек под автофильтрами. требовалось фильтрануть, залить. потом фильтрануть по другому критерию, и снова залить. вобщем заливка перестает работать на второй раз после второго фильтра. я конечно понимаю что можно придумать так, сяк, эдак.. но нафига выдумывать велосипед и ставить палки в колеса при обработке замечательно работавшей ранее функции. получается чтобы забить гвоздь, надо собрать микросокоп, т.к. разработчики банальный молоток разработчики забрали |
korotetsky, спорить не буду. По определению предпочитаю старое проверенное ...
...начинается сразу после вставки куда-нибудь пустой строки... не пробовал. Твой пример в чистую на 2007 с нуля делал. Все ровно шло. Дальнейших модификаций (возможно предпологаемых действий) условно не производил. Но, дабы не рассусоливать, самое главное что я понял Цитата:
|
Цитата:
Цитата:
http://www.planetsmilies.com/smilies/sign/sign0094.gif Нечаянно нажал какие-то кнопки на клаве и получил в ячейке выпадающий список и теперь не знаю как от него избавиться. |
Цитата:
|
Помогите, пожалуйста, написать макрос.
Необходимо посчитать оптимальное количество заклепок в стыке из условий прочности. Изначально в ячейке В13 задается число заклепок 2, дальше практически все расчетные формулы ссылаются на эту ячейку. В результате всех расчетов получаю 4 ячейки В27, В32, В35, В38, к которых 4 значения запаса прочности - 4 числа; функцией И в ячейке В40 задала условие =И(B27>1;B32>1;B35>1;B38>1)...соответственно получается, если хотя бы в одной ячейке значение < 1, то в ячейке В40 пишется ЛОЖЬ, иначе ИСТИНА. Теперь основная задача: необходимо автоматизировать процесс счетчиком таким образом, чтобы если в ячейке В40 значение ЛОЖЬ, то в ячейке В13 число заклепок увеличивается на 2 и снова производится расчет...соответственно получается новое значение в ячейке В40. Расчет прекращается, когда в ячейке В40 получается значение ИСТИНА. Можно продублировать формулы, так чтобы число заклепок прибавлялось не в ту ячейку, в которую изначально задается, но все равно все продублированные формулы должны каждый раз автоматически пересчитывать значения, в зависимости от значения счетчика, до тех пор пока все значения запасов будут >1. Если, что-то непонятно из объяснений могу скинуть собственно екселевский файл с расчетом. |
Естетственное не понятно. Файл в студию
|
Вложений: 1
Загружаю файл...надеюсь станет понятнее...там два расчета верхний куда вводится в ручную число заклепок - ячейка В15 и нижний (копия верхнего) где впоследствии должен автоматически проводится расчет с увеличением значения в ячейке В44 каждый раз когда в ячейке В68 "ЛОЖЬ".
Копию расчета сделала, так как суммировать в ячейку, в которую вручную задается значение наверное нельзя...соответственно необходимо чтобы суммирование проводилось автоматически в нижнем расчете в ячейке В44 и заканчивалось, когда в ячейке В68 будет значение "ИСТИНА". Если у кого-то будут соображения как это сделать, буду очень рада, потому как сама уже замучилась с этим заданием. |
Так, честно говоря усердно пытался разобраться, но так и не понял. Во-первых, раз уж файл выложили и есть не приблизительная структура, то может наконец поясните толком, точными адресами ячеек что есть адреса вроде "нижний (копия верхнего)", "ячейку, в которую вручную задается значение", "верхний рачет", "нижний расчет".
Опишите по шагам что хотите посчитать... Я думаю помочь смогу, если разберусь наконец о чем речь (а может и нет конечно). Для оперативной связи можете постучаться в джаббер. |
И какое там правильное значение в ячейке В44?
Я пробовал вбивать варианты. Дошёл до 60. В ячейке В68 значение "ИСТИНА" не появилось. |
это задача многовариационная, в ней варьируется также диаметр заклепок (В13) и высота стенки (В9)...но автоматический счетчик нужен только для количества заклепок (В15)...суть в том., что если при количестве заклепок 30 все еще значение В44 "ЛОЖЬ", то увеличивается диаметр заклепок, но уже вручную...там нестандартный ряд увеличения...
|
Вложений: 1
Цитата:
Цитата:
В файл добавлено увеличение на ячейку В44 |
дано:
последовательность чисел от 1 до хз скольки, ориентировочно 9000: таблица thread одного форума, точней одно из ее полей. Так как на форуме есть модераторы и есть раздолбаи, то соответственно, раздолбаи периодически создают, а модераторы удаляют топики не соответствующие Правилам форума. Соответственно, в нумерации остаются "дырки" то есть идет 1, 2, 3, 5, 6, 8 итд. То есть модераторы удалили в примере этой последовательности 4й и 7й триды. можно ли средствами Экселя сделать выборку недостающих значений? |
j:=0 //счётчик незаполниных фридов
for i:=1 to maxI-1 do // пробегаем весь список x:=cellvalue(i,1) // получаем значение клетки y:=cellvalue(i+1,1) // также следующию if y<>x+1 then // условие: следующая клетка больше придедущей на 1 begin free_numbers[j]=x+1 //заносим в масив j:=j+1 // увеличиваем счётчик end else next // если условие НЕ выполнено идём к следующей ячейке end for //печатаем получившийся масив for i:=1 to j do cellvalue(i,2):= free_numbers[i] end for вот такой у меня получился псевдокод :) |
Plague, как вариант, включение фильтра на пустое значение не подойдет?
|
а подробней? оно не пустое, оно отсутствующее...
я тут просто еще кучу дел делаю щас посему башка наимутнейшая.. |
Plague, слушай, раз форум, то наверное Имха? Если Имха, то трэды эти из MySQL? Так может мы тогда сразу, без экселя напишем SQL-запрос чтобы выбрать недостающие значения???
P.S. У тебя же везде FreeBSD, при чем тут Excel? Ты на OO Calc будешь переносить ответы?
|
я понимаю, что тема экселивская, но Hubbitus мог бы написать такой SQL запрос?
мне для общего развития :) |
Всех с прошедшими праздниками и праздненствами!
Plague, возможно я тут что то упустил, но если ты решил получить результат экселем, то приаттач пример на 10-20 строк и там же укажи что хочешь выбрать, получить. |
Часовой пояс GMT +4, время: 14:07. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.