Ru-Board.club
← Вернуться в раздел «Программы»

» Excel FAQ (часть 5)

Автор: LaCastet
Дата сообщения: 15.06.2010 14:11
humanunique

Цитата:
Например, при вводе в ячейку A3 текст "солнце", диапазон A1:A8 окрашивается в желтый цвет.

Формат->Условное форматирование
Автор: humanunique
Дата сообщения: 15.06.2010 14:52

Цитата:
Формат->Условное форматирование

А конкретнее? Это то и так понятно.
Автор: LaCastet
Дата сообщения: 15.06.2010 15:40
humanunique

Цитата:
А конкретнее? Это то и так понятно.

Выделяешь диапазон A1:A8, условное форматрование: формула =$A$3="солнце", жмёшь формат, выбираешь жёлтый цвет.
Единственное были проблемы с прорисовкой: некоторые ячейки оставались неокрашенными, а при удалении "солнце" не возвращались в исходный цвет, это лечится прокруткой ячеек вверх-вниз.
Автор: humanunique
Дата сообщения: 15.06.2010 16:17
Дело в том, что таких критериев много. Опишу подробнее (возможно придется перейти в тему по программированию):
если в столбце С3 в строке 1 возникает надпись "солнце", то строка окрашивается в желтый;
если в столбце С3 в строке 1 возникает надпись "небо", то строка окрашивается в синий;
и т.д.

если в столбце С3 в строке 2 возникает надпись "солнце", то строка окрашивается в желтый;
если в столбце С3 в строке 2 возникает надпись "небо", то строка окрашивается в синий;
Автор: LaCastet
Дата сообщения: 15.06.2010 16:34
humanunique

Цитата:
если в столбце С3 в строке 1 возникает надпись "солнце", то строка окрашивается в желтый;
если в столбце С3 в строке 1 возникает надпись "небо", то строка окрашивается в синий;
и т.д.

Делаешь условное форматирование для строки 1. Если критериев не более трёх, то обойдёшься условным форматированием, иначе переходи в тему по программированию.


Цитата:
если в столбце С3 в строке 2 возникает надпись "солнце", то строка окрашивается в желтый;
если в столбце С3 в строке 2 возникает надпись "небо", то строка окрашивается в синий;

Делаешь условное форматирование (если оно подходит) для строки 2.
Автор: oshizelly
Дата сообщения: 17.06.2010 10:56
Попытался в MS Excel 2003 накропать один примитивный макрос и сразу же наткнулся на проблему: как ему указать, что операцию (например, скопировать содержимое ячейки в буфер обмена) надо применять каждый раз к текущей ячейке (той, что под курсором, или той, что выделена в момент исполнения макроса). В MS Word 2003 с этим проблем нет. А в Excel получается так, что команда применяется к той ячейке, которая была текущей в момент записи макроса (то есть, если в момент записи макроса текущей была ячейка A1, то и макрос всегда будет исполняться в отношении ячейки A1). Как это можно обойти?

И еще один детский вопрос. При создании макроса можно ему присвоить горячую клавишу. А как потом присвоенную этот шоткат изменить или хотя бы посмотреть спиок шоткатов ко всем моим макросам?

Спасибо!

З.Ы
Еще примитивный вопрос. Можно ли без помощи макросов быстро сбросить форматирование шрифта в выделенной ячейке на дефолтное (заранее заданное), что-то вроде "clear font formatting"? В MS Word 2003 для этого существует не менне 3-х способов (включая хоткеи Ctrl + Space или Alt + N и пр.). А как это сделать в Excel?
Автор: LaCastet
Дата сообщения: 17.06.2010 11:02
oshizelly

Цитата:
как ему указать, что операцию (например, скопировать содержимое ячейки в буфер обмена) надо применять каждый раз к текущей ячейке

Selection.Copy


Цитата:
А как потом присвоенную этот шоткат изменить

Сервис->Макрос->Макросы, выделяешь нужный макрос и жмёшь кнопку Параметры...

Добавлено:

Цитата:
А в Excel получается так, что команда применяется к той ячейке, которая была текущей в момент записи макроса (то есть, если в момент записи макроса текущей была ячейка A1, то и макрос всегда будет исполняться в отношении ячейки A1). Как это можно обойти?

Это происходит, если после начала записи, ты перемещщаешь курсор на другую ячейку. Если до начала записи, ты ставишь курсор в нужную ячейку, то запишется только Selection.Copy.
Автор: oshizelly
Дата сообщения: 17.06.2010 12:51
LaCastet

Цитата:

Цитата: как ему указать, что операцию (например, скопировать содержимое ячейки в буфер обмена) надо применять каждый раз к текущей ячейке

Selection.Copy  
Автор: LaCastet
Дата сообщения: 17.06.2010 12:57
oshizelly

Цитата:
не получается сделать то, что я хотел: скопировать формат ячейке (кнопка Format Painter с иконкой малярной кисти на стандартной панели инструментов)

Копирование тоже самое: Selection.Copy, вставка другая:

Код:
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Автор: oshizelly
Дата сообщения: 17.06.2010 13:17
LaCastet

Цитата:
Копирование тоже самое: Selection.Copy, вставка другая:
Код:
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False


Однако не получается почему-то. Наваял два макроса, по идее первый должен копировать формат текущей ячейки, а второй - применять этот формат к текущей ячейке (естественно, после работы первого макроса надо передвинуть курсор на целевую ячейку).

Получилось вот что:


Код: Sub Macro1()
'
' Macro1 Macro
' Macro recorded 17/06/2010
'
' Keyboard Shortcut: Ctrl+Shift+C
'
Selection.Copy
End Sub

Sub Macro2()
'
' Macro2 Macro
' Macro recorded 17/06/2010
'
' Keyboard Shortcut: Ctrl+Shift+V
'
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
Автор: LaCastet
Дата сообщения: 17.06.2010 13:45
oshizelly

Цитата:
При использовании горячих клавиш вообще ничего не происходит.

Возможно твои клавиши совпали с другими. Я сделал Макрос1 ctrl+"a", а Макрос2 ctrl+"s". Всё работает.

Добавлено:

Цитата:
А если запускать макросы через стандартный диалог командой Run, то выдается сообщение об ошибке: Run-time error '1004': PasteSpecial method of Range class failed

При выводе стандартного диалога сбрасывается Selection.Copy.
Автор: oshizelly
Дата сообщения: 17.06.2010 14:55
LaCastet
Ага, теперь наконец-то получилось, спасибо! Причем заработали именно мои первоначальные хоткеи Ctrl+Shift+C/Ctrl+Shift+V, уж и не знаю, кто их сначала перехватывал.

Я еще пытался по простоте душевной менять хоткеи, непосредственно редактируя строку ' Keyboard Shortcut: Ctrl+t в окне Visual Basic, но так это, конечно, не получается: эта строка, наверное, нужна просто для справки, а хоткеи надо задавать через стандартный диалог Macro - > Options.
Автор: oshizelly
Дата сообщения: 17.06.2010 18:15
А нельзя ли как-то (при помощи макроса?) назначит хоткей для перехода в Fomulae Bar (и обратно)? По умолчанию для этого используется F2, то он работает только в том случае, если запрещено прямое редактирование ячеек in-place. А у меня оно разрешено.
Автор: Audciz
Дата сообщения: 17.06.2010 20:15
oshizelly
F2 работает всегда, когда можно редактировать ячейки. Это у вас в настройках что-то.

Добавлено:
oshizelly
' - в Visual Basic для комментариев. если с этого начинается строка, то она не обрабатывается интерпретатором.
Автор: Ivanov Ivan
Дата сообщения: 18.06.2010 09:52
Mushroomer
Excel - старый (или 2002, или 2003). С doc проблем нет.
Автор: Mushroomer
Дата сообщения: 18.06.2010 10:30
Ivanov Ivan
Цитата:
Excel - старый (или 2002, или 2003). С doc проблем нет.
Проверяй ассоциацию с расширением xls. Знаешь где это находится?
Автор: LaCastet
Дата сообщения: 18.06.2010 10:52
Ivanov Ivan

Цитата:
Excel - старый (или 2002, или 2003). С doc проблем нет.

Проблема или с Виндой, или с железом (например с памятью, у меня на одном старом компьютере такое было). Скорее с Виндой.
Автор: oshizelly
Дата сообщения: 18.06.2010 10:53
Подскажите, где можно немного почитать (в официальной справке не смог найти) про автоматическое завершение ввода (autocomplete) при заполнении ячеек в Excel 2003? Удобная штука, но я никак не могу сообразить, почему в одном и том же документе для одних ячеек и колонок автозавершение работает, а для других (причем иногда в той же самой колонке!) нет? От чего это может зависеть?
Спасибо!


Добавлено:
Иногда (скажем, при вставке фрагмента через буфер обмена из другой проги или в результате некорректных действий пользователя) вдруг конкретный документ Excel 2003 начинает глючить: самопроизвольно смещается палитра цветов, перестает корректно работать сортировка и т.п. Причем то же самое происходит и со всеми остальными документами.
После перезагрузки Excel или системы прога работает со всеми докуметами нормально - но только до тех пор, пока не откроешь этот поврежденный документ: после этого все начинается сначала
Можно ли с этим как-то бороться? Единственное решение, которое я смог изобрести: скопировать содержимое поврежденного документа в новый документ через буфер обмена. Но при этом кое-какое форматирование теряется, приходится его делать заново. А нет ли других методов лечения?
Спасибо!
Автор: LaCastet
Дата сообщения: 18.06.2010 14:23
oshizelly

Цитата:
смещается палитра цветов

По-моему, палитра цветов хранится в документе. Если её изменили, и документ сохранили, при открытии загружается изменённая палитра.
Автор: oshizelly
Дата сообщения: 19.06.2010 00:23
LaCastet

Цитата:
По-моему, палитра цветов хранится в документе. Если её изменили, и документ сохранили, при открытии загружается изменённая палитра.

Возможно, хотя я немного сомневаюсь. По-моему, палитра - это просто стандартные цветовые коды, поэтому хранить в каждом документе описание всей палитры целиком вряд ли имело бы смысл. Скорее всего, в документе задаются только те цвета, которые в нем использованы.
Но, собственно говоря, вопрос заключается в другом: как с этим можно бороться?
Автор: oshizelly
Дата сообщения: 19.06.2010 11:24
Не сумел нигде найти ответа на, казалось бы, совсем детский вопрос по Excel 2003: как отключить автоматическое добавление имени автора (пользователя) при создании комментариев?
И можно ли сделать, чтобы в комментарии по дефолту использовался обычный шрифт, а не болд?
Автор: Mushroomer
Дата сообщения: 19.06.2010 12:03
oshizelly
Цитата:
как отключить автоматическое добавление имени автора (пользователя) при создании комментариев?
Возможно надо смотреть в сторону, как убрать имя пользователя в меню Справка -> О Программе. Но это только предположение.
Автор: oshizelly
Дата сообщения: 19.06.2010 22:11
Mushroomer
Цитата:
Возможно надо смотреть в сторону, как убрать имя пользователя в меню Справка -> О Программе. Но это только предположение.

Спасибо, предположение вполне адекватное, но это я и сам уже пробовал прежде, чем просить помощи. Дело в том, что совсем убрать имя пользователя не получается. Если оставить поле "User name" в настройках Excel (Tools -> Options -> General) пустым, то в качестве имени пользователя подставляется имя текущего пользователя Windows. А
если, например, ввести в качестве имени пользователя пробел, то этот пробел с полследующим за ним двоеточием опять-таки автоматически вставляется при создании комментария. Мне же нужно, чтобы в поле комментария ничего не было, кроме собственно текста комментария.
Автор: SERGE_BLIZNUK
Дата сообщения: 20.06.2010 10:11
oshizelly
как убрать имя "по-нормальному" я тоже не нашёл.
Но могу сказать, что добавление примечания в макросе VBA
c.AddComment Текст
Добавит именно текст, без всяких имён и двоеточий.
Может Вам осуществять вставку комментариев через свою форму?
Автор: oshizelly
Дата сообщения: 20.06.2010 10:40
SERGE_BLIZNUK
Цитата:
добавление примечания в макросе VBA
c.AddComment Текст
Добавит именно текст, без всяких имён и двоеточий.

Извиняюсь, не совсем понял. При создании макроса надо в его код вписать вместо слова Text нужный мне текст, один на всю жизнь, который потом при исполнении макроса будет добавляться к ячейкам в качестве комментария? Но тогда в этим макросе не очень много смысла: комментарии-то каждый раз разные!
Автор: ferias
Дата сообщения: 20.06.2010 15:49
Попробуйте следующий код:
Sub AddComment()
Dim kom As String
kom = Application.InputBox(Prompt:="", _
Title:="Введите коментарий", Default:="пример", Type:=2)
For Each c In Selection.Cells
c.AddComment kom
Next
End Sub
Автор: oshizelly
Дата сообщения: 20.06.2010 16:25
ferias

Цитата:
Попробуйте следующий код:

Не работает После ввода моего текста в окошке и нажатия на Enter выдается сообщение об ошибке: Run-time error '424': Object required Если нажать на кнопку Debug, то в окне Visual Basic выделена желтым строка c.AddComment kom.
Автор: ALeXkRU
Дата сообщения: 20.06.2010 16:54
oshizelly

Цитата:
Не работает

вроде, работает... ошибку выдает только если в одну и ту же ячейку вставить пытаешься..
Автор: LaCastet
Дата сообщения: 20.06.2010 17:18

Цитата:
ошибку выдает только если в одну и ту же ячейку вставить пытаешься..

Именно.
Сделай так:

Код:
Sub AddComment()
Dim kom As String
kom = Application.InputBox(Prompt:="", _
Title:="Введите коментарий", Default:="пример", Type:=2)
For Each c In Selection.Cells
c.ClearComments
c.AddComment kom
Next
End Sub
Автор: oshizelly
Дата сообщения: 20.06.2010 18:08
LaCastet

Цитата:
Сделай так:

Спасибо, это сработало!

ALeXkRU
LaCastet

Цитата:
вроде, работает... ошибку выдает только если в одну и ту же ячейку вставить пытаешься..

Нет, я пытался в разные.

Добавлено:
Вот если бы какой добрый человек ответил еще на мой вопрос по autocomplete http://forum.ru-board.com/topic.cgi?forum=5&topic=33123&start=320#3

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121

Предыдущая тема: Trojan Remover 6.81 Build 2594


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.