Excel 2003 VBA Найти и скопировать на новый рабочий лист - PullRequest
0 голосов
/ 22 декабря 2010

Я пытаюсь получить этот код, чтобы найти любую дату в декабре и скопировать ее на лист в той же книге.LSheetL - моя декабрьская вкладка.Я также создал другие 11-месячные вкладки и должен будет дублировать этот фрагмент кода для каждого месяца. Существует ли более простой / более консолидированный способ сканирования за месяц / месяц / сканирования / вставки в соответствующую вкладку?- Моя проблема в том, что всякий раз, когда я выполняю этот код, он выдает мне «Microsoft Visual Basic - Ошибка во время выполнения« 1004 »- Ошибка приложения или объекта».Есть идеи?Я думаю о том, чтобы очистить этот код и перейти к другому подходу, но я хотел бы посмотреть, сможем ли мы решить эту проблему, прежде чем просто пропустить.Мне также сказали, что активация различных листов не самый «красивый» способ получения данных отсюда туда, есть ли более красивый способ выполнить эту функцию?Спасибо за любую помощь.

[код]

While LContinue = True

    LastRow = Cells(65535, "q").End(xlUp).Row

        If Month(Range("Q" & CStr(LRow)).Value) = 12 Then

        Range("E" & CStr(LRow) & ",G" & CStr(LRow) & ",K" & CStr(LRow) & ",O" & CStr(LRow) & ",P" & CStr(LRow) & ",Q" & CStr(LRow) & ",AK" & CStr(LRow)).Select
        Selection.Copy

            Sheets(LSheetL).Activate
            Range("A" & CStr(LCurPRow)).Select
            Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            Range("A1").Select

            LCurPRow = LCurPRow + 1

            Sheets(LSheetMain).Activate

        End If

    LRow = LRow + 1

Wend

MsgBox "The copy has completed successfully."

[/ code]

1 Ответ

0 голосов
/ 26 декабря 2010

Сначала опубликуйте весь свой код, это будет легче найти проблему. Тогда я не вижу, когда вы меняете условие вашего цикла while, так что в основном цикл никогда не заканчивается.

LastRow = Ячейки (65535, «q»). Конец (xlUp) .Row Мне кажется, что эта строка неверна, метод Cells принимает два числа в качестве параметров, поэтому, вероятно, причиной этой ошибки является «q». Чтобы узнать это, используйте диапазон методов следующим образом: Range ("Q65535") или Cells (65535,17)

...