Использование double для l oop для гармоничной работы - PullRequest
0 голосов
/ 27 мая 2020

Я хотел пройти по каждому листу в моей книге для каждого, но в то же время я хотел, чтобы for i = 1 увеличивалось на каждом листе, который я просматривал. Я новичок в Excel Vba, любая помощь будет признательна. Вот как мой код выглядел в настоящее время:

For Each xSh In Worksheets
        Windows("Forecast.xlsm").Activate
        xSh.Select
        For i = 2 To LastRow
... Some codes ...

next i

Next

Этот код не будет идеальным, как ожидалось. Любое решение, позволяющее сделать и i, и for each, работает гармонично, и где я должен разместить следующий метод. Спасибо ^^

1 Ответ

1 голос
/ 27 мая 2020

Я предлагаю переместить Windows («Forecast.xlsm»). Активировать перед циклом «Для каждого». Необязательно каждый раз выносить его на передний план.

Я бы также предложил использовать «Явный вариант» и объявить переменные. В этом случае Dim x Sh As Worksheet и Dim i As Long.

Комментарий: не всегда требуется выбирать рабочий лист для работы с ним.

например:

Option Explicit

Sub Example()
Dim i As Long
Dim xSh As Worksheet
Windows("Forecast.xlsm").Activate
For Each xSh In ActiveWorkbook.Worksheets
    For i = 2 To LastRow
       ' Some Code
    Next i
Next xSh
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...