VBA For Next L oop через диапазон - PullRequest
0 голосов
/ 13 февраля 2020

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

Пример: данные из столбцов K: N. Первые данные находятся в строке 2. При переходе к «Следующая ячейка» строка изменяется на три, но cell.value = значение из столбца L строки 3 вместо столбца K строки 3. Это нормально? Разве это не должно начинаться с самого левого столбца, когда я перехожу к следующему C и строка меняется? Спасибо!

Function Modifer_Analysis()

Dim modRng As Range
Dim cell As Range
Dim i As Integer
Dim col As Integer
Dim rowTrack As Double
Dim modComp As String

Range("K2:N17914").Select
Set modRng = Selection

rowTrack = 2

For Each cell In modRng

    If rowTrack = cell.row Then

        If i = 0 And IsEmpty(cell.Value) = False Then
            modComp = cell.Value
        Else
        End If

        If i = 1 And IsEmpty(cell.Value) = False Then
            modComp = modComp & "," & cell.Value
        Else
        End If

        If i = 2 And IsEmpty(cell.Value) = False Then
            modComp = modComp & "," & cell.Value
        Else
        End If

        If i = 3 And IsEmpty(cell.Value) = False Then
            modComp = modComp & "," & cell.Value
        Else
        End If

        i = i + 1

    Else

        i = 0
        rowTrack = cell.row
        modComp = ""

    End If

Next cell


End Function

1 Ответ

1 голос
/ 13 февраля 2020

Непонятно, чего именно вы пытаетесь достичь, но, может быть, что-то более подобное было бы хорошим началом:

Function Modifer_Analysis()

    Dim cell As Range, rw As Range
    Dim modComp As String, sep As String

    'loop over rows
    For Each rw In Range("K2:N17914").Rows 'needs a worksheet qualifier here
        modComp = ""
        sep = ""
        For Each cell In rw.Cells
            'loop over cells in row
            If Len(cell.Value) > 0 Then
                modComp = modComp & sep & cell.Value
                sep = ","
            End If
        Next cell
    Next rw

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