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

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

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

Widok (01-04-2006 15:33): лимит страниц. переезжаем сюда.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

ymy



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

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

 
  • Смена представления имен столбцов с буквенного на цифровое и обратно
  • Надстройки "Сумма прописью"
     
    Тема Excel VBA в разделе Прикладное программирование
     
     


    Вот такой вопрос у меня, помогите хто может: Как в Exсel-e ограничить число строк и колонок отображаемых на листе, точно можно, сам видел, но как?, в непонятках.

  • Всего записей: 1339 | Зарегистр. 22-04-2002 | Отправлено: 17:00 17-09-2002 | Исправлено: Maz, 22:44 24-02-2017
    Yuk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ghosty
    B1: =DATE(YEAR(TODAY()),MONTH(A1),DAY(A1))
    C1: =YEAR(TODAY())-YEAR(A1)
    or: =YEAR(TODAY()-A1)-YEAR(1) <-подправил малость
    or: =IF(TODAY()>B1,YEAR(B1)-YEAR(A1),YEAR(B1)-YEAR(A1)-1)

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 23:13 23-12-2005 | Исправлено: Yuk, 08:31 25-12-2005
    ghosty



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mushroomer
    Yuk
    Cпасибо большое!

    ----------
    пропадет-растает

    Всего записей: 6808 | Зарегистр. 21-09-2002 | Отправлено: 23:18 23-12-2005 | Исправлено: ghosty, 23:25 23-12-2005
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ghosty
    Я почти сделал. Но у меня не получается перевести число в текст и сцепить 3 текстовых элемента в единый текст. Идея такая: делаешь еще 3 столбца между столбцами A и B. И в них будет =ДЕНЬ(A1) =МЕСЯЦ(A1) =ГОД(СЕГОДНЯ()) А потом их надо перевести в текст и просто сцепить, не забыв еще и .  Но вот это у меня не получается.

    Всего записей: 22840 | Зарегистр. 19-01-2002 | Отправлено: 23:32 23-12-2005
    ghosty



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mushroomer
    Так ведь вариант, предложенный Yuk, рабочий вполне. Спасибо
     
    Новый вопрос возник: как заставить автофильтр производить динамическую фильтрацию.  
    Т.е. задача состоит в следующем: на одном листе имеется таблица, на другом -дубликат этой таблицы, значения всех ячеек которой берутся из первой. На втором листе (по одному из столбцов) работает автофильтр.
    При первом включении автофильтра все работает нормально:
     
    Лист1 Лист2 (а-фильтр)
    А        А
    А        А
    А        А
    Б
    Б
     
    Однако, если, например, в первом листе я изменю одно значение, то оно, изменившись на втором, все равно будет включено в таблицу (значение Б):
     
    Лист1 Лист2 (а-фильтр)
    А        А
    А        А
    Б        Б
    Б        
    Б
     
    Поэтому вопрос: что сделать, чтобы фильтрация осуществлялась автоматически.
    Заранее премного благодарен за ответ.

    ----------
    пропадет-растает

    Всего записей: 6808 | Зарегистр. 21-09-2002 | Отправлено: 20:50 24-12-2005 | Исправлено: ghosty, 20:54 24-12-2005
    dendyrec



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Может, эти строчки на что-нить натолкнут?
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        Selection.AutoFilter Field:=1, Criteria1:="a"
    End Sub
     
    я хочу сказать, что проблема в том, чтобы заставить ёксель пересчитывать лист после изменения.

    Всего записей: 124 | Зарегистр. 23-08-2004 | Отправлено: 00:04 25-12-2005 | Исправлено: dendyrec, 00:07 25-12-2005
    ghosty



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dendyrec
    Спасибо за ответ.
    Да, я тоже начинаю подумывать о макросе. Так как мне нужно сделать еще и следующее - при открытии строкам, содержащим прошедшие даты, должен присваиваться статус "hidden". Может, кто-нибудь даст подсказку, как все это сделать в комплексе. Напомните, пожалуйста, как обрабатывается событие открытия док-та. Гм, а ведь еще придется обрабатывать событие ввода новых значений - не слишком ли громоздко получится?

    Цитата:
    Selection.AutoFilter Field:=1, Criteria1:="a"

    А как мне указать на автофильтр на определенном листе?
     
    А стандартными средствами автофильтр никак нельзя заставить срабатывать автоматически? Что-то припоминается...

    ----------
    пропадет-растает

    Всего записей: 6808 | Зарегистр. 21-09-2002 | Отправлено: 01:48 25-12-2005 | Исправлено: ghosty, 01:50 25-12-2005
    Yuk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ghosty
    Заходишь в VBA редактор по Alt-F11. Слева в панели Проект находишь свои книгу или лист, кликаешь правой кнопкой и выбираешь View Code (в русском наверно по-русски будет, не уверен). В открывшемся окне справа с помощью выпадающих меню выбираешь лист и желаемую функцию, например, Activate, SelectionChange и т.д.  
     
     
    Добавлено:

    Цитата:
    А как мне указать на автофильтр на определенном листе?

    Например:
    Worksheets("Sheet1").Range("a1").AutoFilter
    создаст автофильтр в листе "Sheet1" начиная с ячейки А1 без активации листа.
    Либо Worksheets(1).

    Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 08:41 25-12-2005
    ghosty



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

    Цитата:
    Activate, SelectionChange

    Спасибо, буду пробовать.
     
    И все-таки был бы очень признателен, если бы кто-нибудь ответил на мой вопрос относительно динамической автофильтрации (стандартными средствами). Неужели это невозможно?

    ----------
    пропадет-растает

    Всего записей: 6808 | Зарегистр. 21-09-2002 | Отправлено: 01:05 26-12-2005
    grufed



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Мож тупой вопрос, но я пока найти решения не смог
     
    Есть 2 столбца в экселе со значениями, например:
     
    столбец А   столбец Б
    чтото              2345
    ктото              34567
    както              4328
    гдето              984823
     
    Вопрос: как можно объединить эти 2 столбца, или хотябы 2 ячейки, без потери данных...
    чтобы в итоге получить, например:
    столбец А
    чтото2345
    ктото34567
    както4328
    гдето984823
     
     
    КАК ?
    заранее большое спасибо

    Всего записей: 154 | Зарегистр. 21-08-2003 | Отправлено: 21:11 26-12-2005
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    grufed
    Если у тебя столбец А - текстовый, а столбец В цифровой, то в ячейке С1 будет формула =СЦЕПИТЬ(A1;ФИКСИРОВАННЫЙ(B1;0))

    Всего записей: 22840 | Зарегистр. 19-01-2002 | Отправлено: 21:35 26-12-2005 | Исправлено: Mushroomer, 21:36 26-12-2005
    grufed



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Mushroomer Огромное спасибо !!!
    А как еще пробел бы между сцеплеными значениями чтоб сам вставлялся ?

    Всего записей: 154 | Зарегистр. 21-08-2003 | Отправлено: 21:48 26-12-2005
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    grufed
    Все просто =СЦЕПИТЬ(A1;" ";ФИКСИРОВАННЫЙ(B1;0))

    Всего записей: 22840 | Зарегистр. 19-01-2002 | Отправлено: 22:23 26-12-2005
    grufed



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Mushroomer ты супер !
    Офигенно помог моей жене, избавив ее от кучи бесполезной работы
    С наступающим и еще раз ОГРОМНОЕ спасиб

    Всего записей: 154 | Зарегистр. 21-08-2003 | Отправлено: 22:49 26-12-2005
    alin



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите советом, как при выводе таблицы на печать "шапка" переносилась на новый лист.
    Заранее благодарен.

    Всего записей: 683 | Зарегистр. 05-08-2004 | Отправлено: 10:31 27-12-2005
    Horex



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    alin
    Т.е. чтобы одни и те же ячейки были при печати на каждом листе?

    Всего записей: 1547 | Зарегистр. 27-02-2002 | Отправлено: 10:59 27-12-2005
    pikvvik



    Мастер-библиотекарь
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    2 alin
    Файл --> Параметры страницы --> Лист --> Печатать на каждой странице
    Там и задать сквозные строки/сквозные столбцы

    ----------
    Google - страшная сила!

    Всего записей: 3706 | Зарегистр. 30-11-2004 | Отправлено: 11:22 27-12-2005
    docck



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, можно ли отсорттировать столбец с датами так, чтобы это имело вид
    01.01.1985
    02.01.1957
    ...
    25.01.1933
    26.01.1977
    то есть чтобы сортировка происходила по дню месяца без учета года.  
    Вариант с разбиением ни три колонки не предлагать.

    Всего записей: 613 | Зарегистр. 06-01-2004 | Отправлено: 11:45 27-12-2005
    alin



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Horex
    Да.
    pikvvik
    Подходит!
    Огромное спасибо!  
    Всех с наступающим праздником!!!

    Всего записей: 683 | Зарегистр. 05-08-2004 | Отправлено: 11:57 27-12-2005
    Mushroomer



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    docck
    Можно сделать с одним дополнительным столбцом . Идея состоит в том, чтобы все даты привести к одному году. Далается это так =ДАТА(1900;МЕСЯЦ(A1);ДЕНЬ(A1))  А потом делаешь сортировку по этому новому столбцу.

    Всего записей: 22840 | Зарегистр. 19-01-2002 | Отправлено: 12:59 27-12-2005
    romaxone



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Прошу всех набраться терпения и прочитать эту информацию (постарался описать как можно подробнее). Задача следующая:
    Необходимо обобщить данные о смете расходов подведомственных организаций (всего 30). Сбор данных осуществляется в виде excel таблиц (сразу оговорюсь, что форма типовая, абсолютно идентичная по составу для всех отчитывающихся организаций и изменяться не может). Данные таблицы содержат как не защищенные ячейки, которые заполняются  вручную, так и защищенные, которые содержат формулы итогов, подитогов и т.д. Отчеты собираются на произвольную дату, файлы сохраняются в подкаталогах с именем, удовл. шаблону  ДДММГГГГ (например: 20122005). Сводная таблица представляет собой файл той же структуры, что и собираемая отчетность. Для получения свода я написал макрос осуществляющий связывание сводного файла со всеми 30-ю таблицами. Связывание осуществляется путем прописывания формулы суммирования в каждую ячейку сводного файла (т.е. сводный файл A1 =  файл1 А1 + файл2 А1 + … + файл N А1).  
    А вот теперь о проблемах, с которыми я столкнулся при создании этого макроса.  
    Поскольку файлы, собираемые на разные отчетные даты имеют одинаковые имена и идентифицируются лишь по имени подкаталога, то первоначально при написании макроса в суммирующую формулу включать полный путь к каждому файлу, но при попытке записать полученную формулу в ячейку всякий раз появлялось сообщение “out of memory” (мало памяти). После многочисленных попыток от этой идеи пришлось отказаться. Второй подход заключался в следующем. Перед началом связывания выполняется переход в каталог, в котором находятся файлы отчетности, а формула формируется с использованием только имен файлов (без полного пути). Алгоритм оказался работоспособным, но как всегда не без сюрпризов. А именно поведение его оказалось крайне не стабильным,  нередко не смотря на явный переход в один каталог в итоге оказываются связанными данные из другого каталога (на прежнюю отчетную дату), а иногда и того смешнее – формула содержит файлы из разных каталогов, как правило первый файл из заданного, а остальные из предыдущего. Я понимаю это похоже на мистику, но увы многочисленные эксперименты доказали, что это так. Причем алгоритм достаточно устойчиво работает под Office XP, и гораздо хуже под Office 2000.  А может VBA это и вовсе не язык программирования, только по долгу службы приходится иметь дело с Excel таблицами  и  обрабатывать их соответственно.  
    Прошу всех, кто занимался подобными задачами и сталкивался с подобными проблемами откликнуться. Приветствуются все советы, а также информация о тонкостях связывания большого числа файлов в Excel (в частности программного).  

    Всего записей: 24 | Зарегистр. 27-10-2005 | Отправлено: 20:06 29-12-2005
       

    Страницы: 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

    Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (Часть 1)
    Widok (01-04-2006 15:33): лимит страниц. переезжаем сюда.


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru