Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (часть 4)

Модерирует : gyra, Maz

Widok (09-03-2010 13:14): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Просьба к посетителям топика дополнять шапку наиболее часто задаваемыми вопросами со ссылками на ответы
в обязательном порядке

 
  • Смена представления имен столбцов с буквенного на цифровое и обратно


    Сумма прописью
  • Надстройка "PROP" (сумма прописью)
  • надстройка Excellerator (c) Michael Zemlanukha & Maxim Shemanarev
  • макрос Num2String


  • Список соответствия имен функций в английской и русской версиях Excel
  • Описание Microsoft Excel File Format (eng.)
  • Горячие клавиши в Excel (табличка)
     
    Предыдущие ветки топика: Часть 1 | Часть 2 | Часть 3
     
    Все вопросы по программированию (макросы, скрипты, пользовательские функции и т.п.) обсуждаются в теме Excel VBA в разделе Прикладное программирование.
     
    При необходимости выложить скриншот, пользуйтесь сервисом ImageShack® (ограничение на размер файла <1.5 Mb)
     
    Книга Джон Уокенбах "Подробное руководство по созданию формул в Microsoft Office Excel 2002" PDF 34МБ Файлы к книге

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 13:12 29-08-2008 | Исправлено: Maz, 22:45 24-02-2017
    q1wed



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pravoved90 тебе похоже порасюда со всеми вопросами

    Всего записей: 208 | Зарегистр. 02-03-2007 | Отправлено: 20:35 11-09-2008
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AuthorR
    я не модератор, но, по сроку службы, уже могу шапку редактировать...

    Цитата:
    Предыдущие ветки топика:Часть 1 | Часть 2  Часть 3  
    Сделано.
     
    Pravoved90, уважаемый q1wed абсолютно прав! Это возможно только через макрос! Дело в том, что формулы в Excel могут изменять (а точнее возращать значение) только значение в ячейку, в которой они находятся. НЕ СУЩЕСТВУЕТ формул, с помощью которых можно что-то изменить-записать в другую ячейку. Но, зато макросом это делается легко и быстро!
     
     

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 21:29 11-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Благодарю, пошел внедряться в прекрасный мир Экселя дальше

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 00:00 12-09-2008
    Fraerok



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    3 вопроса:
    1) Можно ли сделать так, чтобы в Office XP (не знаю как в других) при нажатии на крестик окна Excel - закрывалось только текущее окно, а не все?
    Я вижу крестик, который находится чуть ниже главного крестика закрытия окна, но на него нужно целиться, а в главный попадаешь, просто справа вверху.
     
    2) Как в одной ячейке сделать принудительный перенос строки? Т.е. не тогда, когда ширинеа не позволяет, а именно там, где мне надо.
     
    3) Как убрать внизу закладку "Лист 1", если этот лист всего один? Чтобы не было этого поля с закладками...

    Всего записей: 1723 | Зарегистр. 11-05-2006 | Отправлено: 11:15 12-09-2008
    dino

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Fraerok
     
    1) Нет так сделать нельзя.
    2) Alt+Enter
    3) Убрать нельзя.

    Всего записей: 167 | Зарегистр. 08-04-2002 | Отправлено: 11:32 12-09-2008
    Fraerok



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dino
    по-поводу 3) - заметьте, я не спросил можно ли так сделать - я спросил как это сделать) Потомучто такие файлы периодически получаю от других. Если так нельзя сделать только в XP-Office, то надо было уточнить.
     
    1)-2) спасибо.
     
    Добавлено:
    3) нашел, в Параметрах -> Вид. Но во-первых это не сохраняется для вновь созданных документов, а, во-вторых, хотелось бы, чтобы, например, автоматически эти ярлычки убирались, когда в документе всего 1 Лист =(

    Всего записей: 1723 | Зарегистр. 11-05-2006 | Отправлено: 12:09 12-09-2008
    kronic

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня проблема с excel 2007
    Например: Если водишь число 2,01 то все нормально, а если вести 2,001 то он автоматом пределавыет его 2001
    3,00001 => 300001
    345,0002 => 3450002
    и т.д.
    Кто нибудь знает как это исправить

    Всего записей: 168 | Зарегистр. 01-11-2006 | Отправлено: 12:48 12-09-2008
    dino

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Fraerok

    Цитата:
    Добавлено:  
    3) нашел, в Параметрах -> Вид. Но во-первых это не сохраняется для вновь созданных документов, а, во-вторых, хотелось бы, чтобы, например, автоматически эти ярлычки убирались, когда в документе всего 1 Лист =(

     
    Вот как! Не знал! Век живи, век учись!
     
    Чтобы режим сохранялся для вновь созданного документа, надо в открытом документе убрать ярлыки листов и сохранить документ в папке автозагрузки, чтобы твой документ, без ярлычков листов, стартовал первым.
    Ну а для того, чтобы ярлычки автоматически убирались, здесь видимо без макросов не обойтись.

    Всего записей: 167 | Зарегистр. 08-04-2002 | Отправлено: 13:34 12-09-2008
    ivas



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    kronic
    Правой кнопкой мыши на активную ячейку (выделенный столбец, лист) Формат ячеек - Числовой. Далее - количество знаков, регистры и проч.

    Всего записей: 3175 | Зарегистр. 23-11-2004 | Отправлено: 14:29 12-09-2008
    dmention

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Дополнительно к немного выше заданному мной вопросу, на который я пока не получил ответа, хочу спросить:
     
    1. Как сделать так, чтобы при щелчке на гиперссылке в ячейке или может быть при щелчке на самой ячейке выполнялся определенный макрос или просто функция? Макрос должен быть один, а ячеек на которые можно щелкнуть может быть много.
     
    Т.е. например ячейка с надписью "Вставить строку/удалить строку". При нажатии на нее макрос вставляет/удаляет строку выше.
     
    2. Использует ли кто-нибудь файлы Excel с одновременным доступом (Сервис >> Доступ к книге >> галочка Разрешить...) для нескольких пользователей? Поделитесь опытом. Какие могут быть подводные камни? Может это не очень удобно и вызывает больше проблем?

    Всего записей: 206 | Зарегистр. 09-07-2005 | Отправлено: 15:34 12-09-2008
    kronic

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ivas
    Пробавал от этого не чегон

    Всего записей: 168 | Зарегистр. 01-11-2006 | Отправлено: 15:43 12-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Люди добрые - ну неужели никто не знает????  Я создал макрос A1B1C1 копируется в A2B2C2. На вопрос, как написать, что этот макрос выполняется если в ячейке D1 написано слово, допустим, "счастье". получил такое:
     
    if Range("D1").Value="cчастье" then
      имя_макроса
    End if  
     
    НО КУДА ЭТО НАДО ВСТАВИТЬ??? В макрос или куда в другое место...Уже отчаялся...SOS

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 17:39 12-09-2008 | Исправлено: Pravoved90, 19:34 12-09-2008
    CEMEH



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pravoved90
    Может нужно контролировать нажатие клавиш. Как на VBA сделать не знаю но принцип такой:
    ' Если нажата Enter то выполнить макрос. То есть проверить, есть ли счастье в D1.
    Только после нажатия enter будет ясно что написано в D1 счастье или что-то другое.
     
    хотя не всегда ввод данных заканчивается enter

    Всего записей: 237 | Зарегистр. 17-09-2006 | Отправлено: 23:49 12-09-2008 | Исправлено: CEMEH, 23:51 12-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    CEMEH
    Я подозреваю, что надо еще чем-то начать и закончить макрос. Например, для того чтобы чтобы макрос запускался при нажатии на ячейку нашел код старого содержания:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Target.Column = 3 Then Макрос1
    End Sub
     
    Тут понятно, что идет всупительная строка - потом причина и следствие.
     
    Попробовал по анологии поставить вначале  Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    Она вроде бы заработала, но макрос начал исполняться бесконечное количество раз. Пришлось перезагружаться...
     
    Думаю, истина где-от рядом. Просто надо изменить пару строчек......

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 00:28 13-09-2008 | Исправлено: Pravoved90, 01:14 13-09-2008
    q1wed



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pravoved90

    Цитата:
    начал исполняться бесконечное количество раз

    успевай переключиться на другую ячейку
     
    Добавлено:
    а вообще попробуй добавить условие что выполнить макрос надо только в том случае если выбранная ячейка не равна результату действия макроса
     
    И покажи свой Макрос1. Попробовал имитировать твою ситуацию вот таким вот макросом:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Selection.Interior.ColorIndex = 6
      Selection.FormulaR1C1 = "=R1C1+R1C2"
    End Sub

    зацикливания не происходит
     
    Добавлено:

    Цитата:
    Пришлось перезагружаться...  
    не нужно - можно зажать Esc на несколько секунд и макрос остановится

    Всего записей: 208 | Зарегистр. 02-03-2007 | Отправлено: 16:35 13-09-2008 | Исправлено: q1wed, 17:19 13-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Мой макрос такой  
     
    Range("E60:G60").Select
        Application.CutCopyMode = False
        Selection.Copy
        Range("H60").Select
        ActiveSheet.Paste
    End Sub
    То есть копируються ячейки.
     
    Условие записано так:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    if Range("D1").Value="земля" then
      имя_макроса
    End if
    End Sub  
    То есть должна быть команда - выполнить макрос, если в ячейке d1 написано "земля".
     Вопрос в том: а) проавильно ли записано условие? б) куда надо его вставлять(в макрос, или в отдельный лист команд)??
     
    Помогите, будьте любезны, написать вашу аналогию под мой случай, а то я не совсем понял, что  и где надо прописать.

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 18:37 13-09-2008 | Исправлено: Pravoved90, 18:42 13-09-2008
    q1wed



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Иёмаё! Я не силен в макросах, но разве можно использовать команду Select совместно с Private Sub Worksheet_SelectionChange(ByVal Target As Range). Посуди сам, твой макрос выглядит так: как только что-то выделили - надо что-то сделать, а в "что-то сделать" написано выделить еще "что-то" - и понеслась - первая команда следит за тем, что выделяется и передает управление второй, а вторая сама "что-то" выделяет и первая перехватывает выполнение на себя - соответственно заставляя вторую команду опять выполняться.......и так по бесконечному кругу.
     
    Избавься от команды select в теле макроса.
    Private Sub Worksheet_SelectionChange(ByVal Target As Range) необходимо вставлять либо в лист где необходимо выполнение, либо в книгу. Сам макрос наверно можно вставить в модули.

    Всего записей: 208 | Зарегистр. 02-03-2007 | Отправлено: 19:42 13-09-2008 | Исправлено: q1wed, 19:53 13-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    вместо имя_макроса вставил бы сам макрос

    Попробовал - результат тот же.
     

    Цитата:
    Избавься от команды select в теле макроса.  

    А как же от него избавиться, если макрос собственно и состоит из копирования ячеек...
    Чтото не приходит в голову, как обойти...(((

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 20:27 13-09-2008
    q1wed



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pravoved90
    вот нашел ответ как только зашел в ветку по VBA http://forum.ru-board.com/topic.cgi?forum=33&topic=3961&start=300#2 (в шапке ссыль была) но от селект тоже можно было бы избавиться
     
    Добавлено:
    пжлста, избавилися от select  
    Sub Макрос1()
    Range("H60:J60").Value = Range("E60:G60").Value
    End Sub
    в данном случае только  значения копируются. если нужно чтобы формулы копились надо параметр value заменить

    Всего записей: 208 | Зарегистр. 02-03-2007 | Отправлено: 21:02 13-09-2008 | Исправлено: q1wed, 21:02 13-09-2008
    CEMEH



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А если в макрос добавить мульку, которая будет контролировать время выполнения?
    То есть если после начала выполнения условия прошло менее 1 секунды, то макрос не выполнять. Таким образом остановить зацикливание.

    Всего записей: 237 | Зарегистр. 17-09-2006 | Отправлено: 21:30 13-09-2008
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

    Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (часть 4)
    Widok (09-03-2010 13:14): Лимит страниц. Продолжаем здесь.


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru