Как выйти из цикла, когда весь столбец пуст? - PullRequest
0 голосов
/ 07 июля 2019

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

A ---------- 1 ---------- blank --------- A --------- 1

B ---------- 2 ---------- blank --------- C --------- 4

C ---------- 3 ---------- blank --------- W --------- 2

В приведенном выше примере я хочу выполнить цикл с k = 1 до первого пустого столбца, то есть k = 3 (т.е. извлекать данные только из первых 2 столбцов, а затем останавливать цикл).

Это мой текущий код:

Option Explicit
Sub exitemptycolumn()

    Dim lastcolumn As Long
    Dim lastrow As Long
    Dim sh As Worksheet
    Dim rng As Range

    Set sh = Sheets("sheetname")
    lastcolumn = sh.Cells(1, Cells.Columns.Count).End(xlToLeft).Column
    lastrow = sh.Cells(Rows.Count, 1).End(xlUp).Row

    For k = 7 to lastcolumn
        for j = 1 TO lastrow
            set rng = sh.Range(columns(1), Columns(k))
            If Application.WorksheetFunction.CountA(sh.Cells(1, k).EntireColumn) = 0 then Exit For
            'rest of code
        Next j
    Next k
End Sub

1 Ответ

2 голосов
/ 07 июля 2019

Чтобы ответить на вопрос, вы хотите завершить цикл по столбцам, как только столбец будет полностью пустым.

Мы можем использовать Application.WorksheetFunction.CountA для проверки следующим образом:

For k = 7 to lastcolumn
    set rng = sh.Range(columns(1), Columns(k))
    If Application.WorksheetFunction.CountA(sh.Cells(1, k).EntireColumn) = 0 then Exit For
Next k
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...