PDA

Показать полную графическую версию : [архив] Microsoft Excel


Страниц : 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Greyman
18-03-2004, 19:27
DSK
Думаю что варианты приблизительно равны ...
В принцыпе - да (по крайней мере алгоритмически), но можно еще по времени выполнения сравнить. Один из них должен быть по быстрее, его и можно брать за основу.

Vadikan
18-03-2004, 19:57
Вообще-то, в приведенном примере никаких ухищрений не нужно. Просто кликается на любую ячейку, в столбце, по которому провoдим сортировку (в данном случае с буквой) и нажимаем на кнопку сортировки по алфавиту. Попробуйте сами.

Исправлено: Vadikan, 19:58 18-03-2004

Vadikan
19-03-2004, 05:51
Доброго времени суток!

Я тут озадачился следующим вопросом. Есть табличка 10 столбцов на 1500 строк. Для удобства чтения при распечатке хотелось бы отделять строки не банальной сеткой, а различным цветом заливки ячеек. Например, чередовать прозрачный (нет заливки) со светло-серым. Идея аналогична отделению постов в теме на форуме, кстати. Понятное дело, что вручную я это делать не хочу. Я и так и сяк покрутил, но что-то не нашел варианта автоматизировать процесс. Может я что-то упустил и решение лежит на поверхности? Буду рад услышать любые идеи.

Спасибо за внимания.

grmbrg
19-03-2004, 07:28
Есть необходимость в Excel'е создаваит книги, один из листов которых содержит рисунок. Рисунок вводится в лист со сканера. размер рисунка от 5х5 см до 15х15 см. Нужно, чтобы в Excel'е при просмотре и печати рисунка он был того же размера, что и оригинал, сканированный с бумаги.  А то при вставке-рисунок-из файла он растягивается и реальные его размеры становятся больше.

ShaRP
19-03-2004, 09:52
grmbrg
Есть мнение, что не рисунок растягивается, а сканер надо настроить, параметр DPI.

Greyman
19-03-2004, 10:29
Vadikan
Могу предложить несколько способов. Можешь выбрать что тебе удобнее, заодно может наведет на мысль о вариантах, которые я упустил.
1) Первый который приходит в голову, но не самы простоы - воспользоваться макросом. Саму заливку можно осуществлять с помощью:Cells(1, 1).Interior.ColorIndex = 6 Индекс определяет цвет. Закраска нужного диапазона уже вопрос программирования (условия, цыклы и т. д.). Если нужна не сплошная заливка, то можно воспользоваться: Cells(1, 1).Interior.Pattern = xlSolid Значения для разных способов заливки можно посмотреть в хелпе для Pattern. Если нужно более подробно, то, в принцыпе, могу прикинуть и макрос целиком, если время свободное найдется...

2) Копирования форматирования ячеек. Сначала раскрашиваешь себе один повторяющийся цыкл (например, первая строка - в желтую полоску, вторая - в зеленый горошек, третья - черный крестик и т. д. и т. п.). После чеко копируешь через Правка/ Специальная/ форматирование. Заметным минусом этого варианта является то, что при копировании переносятся все форматы (в том числе высоты строк, выравнивание значений в ячейках). Однако, если все строки могут быть одинаковой высоты и выравнивание в одном столбце от одной строки к другой не меняется, то этот способ отлично подойдет.

3) Раскраска заданного выделения. Способы выделения могут быть разными, мне больше нравится вариант с фильтрованием. Просто в дополнительном столбце формируются значения, по которым потом и идет фильтрование. Для твоего случая формула будет очень простая, которую просто надо раскопировать на все 1500 строк: =ЕЧЁТН(СТРОКА(J1)) Функция ЕЧЁТН становится доступна (и ряд других), если в Сервис/ Надстройки подключен модуль "Пакет анализа" (соответственно для этого его необходимо установить, если отсутствует). Если "Пакет анализа" не использовать или, если чередование будет более сложное, просто формула усложниться, но суть не изменится. Конечно вариант не польностью автоматизированный (вставка формулы, ее копирование, фильтрация, выделение, раскраска, отмена фильтра и удаление дополнительного стобца), поэтому, если автоматизация нужна максимально возможная, то макросы ИМХО именно тот вариант.

Млин. Один раз уже пост написал, но после предпросмотра сразу (без всяких действий с моей стороны) форум выдал ошибку из разряда "не правильный пользователь" или что-то похожее. В результате - пост похерен...:( *В итоге, это - второй вариант...

Greyman
19-03-2004, 10:44
grmbrg
В офисе забито разрешение по умолчанию для рисунков. Точное значение щас не знаю (вроде в диапазоне 100-150dpi). Соответственно, чтобы в Exel сразу показывал рисунок в нужном размере без дополнительных действий с твоей стороны, просто необходимо сканировать в заданном разрешении. Это вариант, лежащий на поверхности. Возможно также есть способ принудитьльно поменять дефолтное значение разрешения, тогда сканировать можешь как тебе захочеться, но есть ли на самом деле такая возможность и как ее осуществить - не знаю...

Добавлено:

Млин, уже который раз за сегодня при предпросмотре (да и постинге тоже) вываливается ошибка форума. Пока я с этим боролся ShaRP уже 100 лет назат все сказал... Пошел ка я жаловаться в соответствующий раздел...

Billy Bones
19-03-2004, 16:37
На листе есть таблица с данными, есть скрытые строки и столбцы. Нужно удалить их. Получается только если нажать Ctrl и мышей выделять нескрытые ячейки, затем скопировать на другой лист. Вот тока если ячеек этих очень много, запаришься выделять. Если более простой способ?

Greyman
19-03-2004, 23:56
Billy Bones
А почему нельзя их сначала отобразить, а потом удалить с тово же листа? Или не знаешь как:
1)выделить все - левая кнопка в верхний левый угол таблицы);
2) отобразить столбцы - правой кнопкой в любом месте подписей столбцов, в появившемся меню - отобразить;
3) отобразить строки - ... подписей строк, ... - отобразить.
Так нормально, или ты что-то другое имел в виду?

Vadikan
20-03-2004, 02:20
Greyman
2) Копирования форматирования ячеек.
То что нужно. Действительно, решение (почти) на поверхности ;-) Большое спасибо!

Billy Bones
20-03-2004, 21:03
Да как отобразить я знаю. Но вот если у тебя отобразилось 1000 крытых строк, то как их удалить не вручную???

Greyman
20-03-2004, 22:42
Billy Bones
Ну тогда делай макрос. Например что-то вроде:

for i=1 to 1000
if columns(i).hidden then columns(i).delete
next i

Это для столбцов, для строк аналогично, тока будет "Rows". Вроде ничего не напутал, но если что, надеюсь разберешся, а то проверять че-то лень...

Так пойдет?

Добавлено:

Не, таки упустил одну вестч. Правильно должно быть так:

for i=1 to 1000
if columns(i).hidden then
*columns(i).delete
*i=i-1
end if
next i

Иначе некоторые столбцы можно пропустить, если несколько скрытых подряд стоят...

Billy Bones
20-03-2004, 23:45
Спасибо, путевый совет. Но хотелось бы обойтись без макросов. Что-то мне подсказывает, что можно как-то скопировать только отображаемые ячейки, пропустив при этом скрытые, получая таким образом на новом листе только нужные ячейки. Хотя могу ошибаться...

Greyman
21-03-2004, 15:32
Billy Bones
Ну ты ведь стпашивал как удалить скрытые строки и столбцы на листе - вот я и ответел, друго способа я не знаю. А как оказалось тебе достаточно просто скопировать видемые ячейки в новый лист... Сначала я было засомневался, что автоматом такое возможно, ведь выделяются именно диапазоны, а они включают и скрытые области (исключение имеем только в случае фильтрации)... Однако я ошибался, оказывается надо было просто чуть повнимательнее почитать хелп:
Выделяем необходимую область. Далее: Правка/ Перейти/ Выделить - "только *видимые ячейки". В результате из выделения автоматом исключатся скрытые ячейки, стовно ты сам все выделял с Контролом.
* * Там, кстати, есть и другие возможности группового выделения, которые тоже могут пригодиться (я, например, до этого об этом не знал...).

П.С.
* * *Да, если таки пользоваться макросом, то треба его слегка подправить:

n=1000
for i=1 to n
if columns(i).hidden then
 columns(i).delete
*i=i-1
*n=n-1
end if
next i


Исправлено: Greyman, 15:33 21-03-2004

Billy Bones
21-03-2004, 15:50
Спасибо большое. Последний совет полностью удовлетворил меня. Вот что значит не полазить по всем менюхам...Теперь, как я и предпологал, видимые ячейки переносятся на новый лист, а старый лист со крытыми ячейками просто удаляется...Еще раз большое спасибо!

Guest
22-03-2004, 06:26
Всем привет!
Возникла проблем в Excel формулы не работают.(пример сумма), но когда сохранишь документ результат появляется или когда зайдешь в ящейку с пмошью клавиши F2.
Зарание Спасибо!

Vadikan
22-03-2004, 06:32
Guest 195.238.38.*
Tools->Options->Calculations->Аutomatic стоит?

Guest
22-03-2004, 11:19
Vadikan
Да я проверил там стоит "автоматически".
Может офисс переустановить?

Greyman
22-03-2004, 13:26
Guest (195.238.38.*)
Да я проверил там стоит "автоматически".
Странно, ИМХО должно тогда работать. Попробуй тогда переключить на ручное, а потом опять на автоматическое (для верности даже с промежуточным закрытием Excel). Если не поможет, то в принципе могло что-то случиться с его шаблонами стандартных макросов (*.XLA, автовычисление к ним тоже относиться). По умолчанию они валяются в C:\Program Files\ Microsoft Office\ Office\ Library. Попробуй их обновить (по идее они и сами должны обновиться при переустановке или при восстановлении Офиса), например взяв их с первого диска (привожу для оригинального 2000'го) в разделе PFILES\ MSOFFICE\ OFFICE\ LIBRARY. Если нет, тогды уж и переустановку можно попробовать (сначала просто поверх или в режиме восстановления, потом с предварительной деинсталляцией, а уж на худой конец еще и с вычещением следов из реестра).

Greyman
22-03-2004, 14:00
Иногда встречаются макросы, которые нельзя просмотреть в редакторе VBA без предварительного ввода пароля (например втроенные в Excel). Каким образом можно все-таки посмотреть исходный код таких модулей? Межет хотя-бы дефолтные пароли мелкомяхкие кто знает? Может прога какая по их вскрытию?




© OSzone.net 2001-2012