Если заявление не будет копировать результаты на отдельной странице - PullRequest
0 голосов
/ 13 марта 2019

Создание оператора If, чтобы отсортировать мои данные по месяцам в определенном столбце.Код таков:

Worksheets("Project Info").Activate

Dim month As Long
Application.ScreenUpdating = False
For month = Cells(Rows.Count, 23).End(xlUp).Row To 1 Step -1
    If InStr(1, Cells(month, 23).Value Like "1/*", 1) _
    Then Cells(month, 23).EntireRow.Copy
    Worksheets("January").Activate
    ActiveSheet.Paste
Next month

По какой-то причине он не будет копировать данные на указанную страницу.Он даже не копирует данные вообще.Есть идеи?

1 Ответ

2 голосов
/ 13 марта 2019

Как уже упоминалось в комментариях выше, вам нужно использовать ссылки на листы, в противном случае вы будете переходить назад и вперед между листами, а после первой итерации вы копируете и вставляете на тот же лист. Вы также должны указать, куда вы будете вставлять данные и каждый раз менять место назначения, в противном случае вы продолжите вставлять поверх тех же данных.

Dim ws1 as Worksheet
Dim ws2 as Worksheet

Set ws1 = Worksheets("Project Info")
Set ws2 = Worksheets("January")

Dim month As Long
Dim t as Long

Application.ScreenUpdating = False

t=1
For month = ws1.Cells(Rows.Count, 23).End(xlUp).Row To 1 Step -1
    If InStr(1, ws1.Cells(month, 23).Value Like "1/*", 1) Then
       ws1.Cells(month, 23).EntireRow.Copy
       ws2.Rows(t).PasteSpecial xlPasteAll
       t=t+1
    End if
Next month
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...