1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Помогите с макросом!

Тема в разделе "Остальные языки программирования", создана пользователем Whisper, 7 авг 2006.

Статус темы:
Закрыта.
  1. Whisper

    Whisper Гость

    Репутация:
    0
    Очень нужно узнать реально ли в экселе при помощи макросов сделать следующую операцию:
    Есть журнал. В нем есть графа даты, графа номера, графа имени и название.
    Нужно, чтобы выводились (или в новом документе или в новом окне или в новом листе) данные вписанные месяц назад. Т.е. 30 дней.
    Есть некоторые наброски, но это не то. Помогите пожалуйста!

    Наброски:
    sub CreateReport ()
    dim WS as Worksheet
    dim WS1 as worksheet
    set WS = ActiveSheet 'это тот лист, на котором лежит реестр
    Worksheets.Add
    set WS1 = Activesheet
    rownum=2
    'D1 и D2 - это даты границ пред.месяца

    D1 = DateSerial(2006,6,30)
    D2 = DateSerial(2006,8,1)

    for I = 2 to WS.Range("A65536").End(xlUp).Row
    if WS.Cells(I,1).Value > D1 and WS.Cells(I,1).Value < D2 then 'предположим, что дата в колонке 1
    WS1.Cells(rownum,1).Value = WS.Cells(I,1).Value
    WS1.Cells(rownum,2).Value = WS.Cells(I,2).Value
    WS1.Cells(rownum,3).Value = WS.Cells(I,3).Value
    WS1.Cells(rownum,4).Value = WS.Cells(I,4).Value
    rownum=rownum+1
    end if
    next

    end sub

    Тема еще в том что надо сделать автоматический отсчет даты, а не вписывать диапазон вручную как в примере.
     
  2. Tanya

    Tanya Гость

    Репутация:
    0
    sub CreateReport ()
    dim WS as Worksheet
    dim WS1 as worksheet
    set WS = ActiveSheet 'это тот лист, на котором лежит реестр
    Worksheets.Add
    set WS1 = Activesheet
    rownum=2
    'D1 и D2 - это даты границ пред.месяца

    D1 = Date 'текущая дата
    D2 = DateAdd("d",-30,d1)

    for i = 2 to WS.Range("A65536").End(xlUp).Row
    if WS.Cells(I,1).Value <= D1 and WS.Cells(I,1).Value > D2 then 'предположим, что дата в колонке 1
    WS1.Range("A" & rownum & ":)" & rownum).value = _
    WS.Range("A" & i & ":huh:" & i).value
    end if
    next i
    Set WS=Nothing
    Set WS1=Nothing
    end sub
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей