Зацикливание каждого значения ячейки в столбце до пустого значения и для каждого значения используйте все значения в другом столбце, пока не будет пустым - PullRequest
0 голосов
/ 11 июня 2019

У меня задание на преформу, и я на полпути.Мне нужен цикл для итерации каждого значения, скажем, столбца «A» (A1, A2, A3 и т. Д.), А затем получения всех значений ячейки из столбца «B» (B1, B2, B3 и т. Д.) Для первогоячейка на «A», и они перемещаются, чтобы получить все значения из столбца «C» для второй ячейки на «A» (A2), и так далее.Мне удается выполнить цикл каждой ячейки на «A» до пустого значения и получить все значения от «B» до пустого значения в столбце «A», но не изменить на столбец «C», когда ячейка на «A» изменится навторой (А2).

Dim BlankFound As Boolean
Dim BlankFound_1 As Boolean
Dim x As Long
Dim y As Long

Do While BlankFound = False
    x = x + 1
    If Worksheets("shee1").Cells(x, "A").Value = "" Then
        BlankFound = True
    ElseIf Worksheets("shee1").Cells(x, "A").Value = "title" Then

    Else
        value_1 = Worksheets("shee1").Cells(x, "A").Value
        BlankFound_1 = False
        y = 0
        Do While BlankFound_1 = False
            y = y + 1

            If Worksheets("sheet2").Cells(y, "A").Value = "" Then
                BlankFound_1 = True
            ElseIf Worksheets("sheet2").Cells(y, "A").Value = "values" Then

            Else
                value_2 = Worksheets("sheet2").Cells(y, "A").Value
            End If
       Loop
    End If

    'End If 'this End If doesn't have an If
Loop

1 Ответ

0 голосов
/ 11 июня 2019

Если я понял ваши намерения, я думаю, что это будет делать:

Option Explicit
Sub consolidate()

    Dim x As Long
    Dim i As Long
    Dim Col As Long

    With ThisWorkbook.Sheets("MySheet") 'Change MySheet for your working sheet name
        Col = .Cells(1, .Columns.Count).End(xlToLeft).Column 'calculate the last column
        'instead looping for every cell, just use the Sum function for the range in every column
        For i = 2 To Col
            .Cells(i, 1) = Application.Sum(.Columns(i)) 'the i will increase both the column to calculate and the row for the output
        Next i
    End With

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