Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2013, 11:39   #1
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
Сообщение Проблема с поиском и копированием дат

Здравствуйте уважаемые коллеги, не могли бы вы мне помочь с решением моей проблемы, над которой я бьюсь уже битый день. Суть вот в чем: на "Лист1" есть два заполненных столбца "Дата начала периода" и "Дата окончания периода" при нажатии на кнопку я должен сравнивать текущий(системный) месяц с месяцами находящиеся на "Лист1". Если я нашел такой месяц текущего года то эта найденная запись должна копироваться на лист текущего месяца. В моей книге у меня данная процедура срабатывает единожды, как мне преобразовать или можно решить данную проблему, помогите пожалуйста коллеги!
Вложения
Тип файла: rar Searsh_date.rar (14.3 Кб, 12 просмотров)
manula вне форума Ответить с цитированием
Старый 16.09.2013, 12:42   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Замените Ваш код на следующий:
Код:
Private Sub CommandButton1_Click()
    Dim i As Long, m As Integer, mm As Integer, y As Integer, ws As Worksheet
    Dim yy As Integer, md As Integer, yd As Integer: Application.ScreenUpdating = False
    md = Month(Date): yd = Year(Date)
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        m = Month(Cells(i, 1)): mm = Month(Cells(i, 2))
        y = Year(Cells(i, 1)): yy = Year(Cells(i, 2))
        If (m = md And y = yd) Or (mm = md And yy = yd) Then
            On Error Resume Next
            Set ws = Sheets(MonthName(m))
            If Err <> 0 Then
                On Error GoTo 0
                Sheets.Add(, Sheets(Sheets.Count)).Name = MonthName(m)
                Set ws = ActiveSheet
            End If
            Sheets("Лист1").Activate
            Rows(i).Copy ws.Cells(Rows.Count, 1).End(xlUp).Offset(1)
        End If
    Next
End Sub
Если листа с именем требуемого месяца нет, то он будет создан. Если такой лист есть, то найденные строки будут скопированы в этот лист ниже.

P. S. По непонятной причине, не могу прикрепить ни rar ни zip архив... (ошибка загрузки)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 16.09.2013 в 12:45.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с копированием строки alexey_kip Win Api 0 13.05.2013 20:28
проблема с копированием santerses Помощь студентам 0 27.05.2011 18:07
Проблема с копированием Sam Gold Общие вопросы C/C++ 2 28.04.2010 16:25
Проблема с копированием Ronni10 Операционные системы общие вопросы 1 29.04.2008 09:39
Проблема с копированием каталога!!! Volkogriz Общие вопросы Delphi 15 18.10.2007 07:57