Цикл Excel VBA не перемещается в следующую строку - PullRequest
0 голосов
/ 25 сентября 2019

Я так застрял.Я не могу понять, почему я не могу заставить этот простой цикл работать, и мне все еще нужно расширяться, как только я закончу первую часть.Мой цикл не переместится к следующему значению i, чтобы продолжить поиск.

Sub TryThis()

Dim Purch As String
Dim Sales As String
Dim finalrow As Integer
Dim i As Integer

Purch = "PURCHASES"
Sales = "SALES"

finalrow = Sheets("Sheet1").Range("A12000").End(xlUp).Row

For i = 6 To finalrow
If Cells(i, 1) = Purch Then
  Range(Cells(i, 1), Cells(i, 7)).Copy
  Sheets("Sheet2").Activate
  Range("A300").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
  Sheets("Sheet1").Activate
End If

Next i

Range("A1").Select


End Sub

Я работаю на пустом месте, поэтому я знаю, что упускаю что-то простое.В конце я пытаюсь выполнить цикл по строкам, и если в строке, столбце А есть «Закупки» или «Продажи», скопируйте эту строку на лист 2.

В идеале, я быЯ хотел бы, чтобы продажи показывались в столбце C на листе 2, а покупки - в столбце b, но я разберусь с этим позже, просто пытаюсь начать и, должно быть, так усердно думаю, что мне не хватает простого ответа.

Спасибо

1 Ответ

1 голос
/ 25 сентября 2019

Проверьте значение, назначаемое для finalrow.

Без наличия вашего файла это трудно диагностировать.Я не могу найти никаких явных ошибок в вашем коде, поэтому я буду опираться на опыт.

Существует довольно много способов определить, какой будет последняя строка таблицы.Вы используете мой любимый, но у него есть пара подводных камней:

  1. Столбец А может быть пустым.Я обычно сталкиваюсь с этим при использовании данных, вставленных с другого листа или запроса SQL, но это будет зависеть от проекта.
  2. Столбец A может превышать 12000 строк.Я обычно сталкиваюсь с этим, когда заполняю столбец А формулой и «заполняюсь» слишком далеко вниз.«End (xlUp)» затем переходит к «A1».

Чтобы (обычно) обойти любую из этих проблем, я всегда использую максимально возможную строку в качестве начальной точки;A65563 для Office 2010 или более ранней версии или A1048576 для чего-либо после этого.Процесс обработки не занимает больше времени и дает более согласованные результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...