Автоматическое заполнение ячеек с логикой движения вниз - PullRequest
0 голосов
/ 27 мая 2020

Мне нужно автоматическое заполнение ячеек с движением вниз logi c. Logi c is - >> Есть 2 значения, ячейка «C11» = «S» и ячейка «C12» = «H», и мне нужно, чтобы она заполнялась до последней ячейки, а не пустой ячейки в coulmn «D11: D. ". Проблема возникает, если количество непустых ячеек <= 4. Сообщение об ошибке: «Ошибка выполнения 1004. Сбой метода автозаполнения класса диапазона». Не могли бы вы поддержать меня, чтобы исправить код? Спасибо. </p>

Sub automatic_data_population()
            Sheets("Sheet1").Activate
            Sheets("Sheet1").Range("C11").FormulaR1C1 = "S"
            Sheets("Sheet1").Range("C12").FormulaR1C1 = "H"
            Sheets("Sheet1").Range("C13").FormulaR1C1 = "=R[-2]C"
            Sheets("Sheet1").Range("C14").FormulaR1C1 = "=R[-2]C"
            Sheets("Sheet1").Range("C13:C14").AutoFill Destination:=Range("C13:C" & Range("D" & Rows.Count).End(xlUp).Row)
End Sub

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Здесь для справки.

Sub automatic_data_population()

Dim i as integer
Dim lastrow As Integer

With Sheets("Sheet1")
' fetch the row no of lastrow based on the data in column D
lastrow = .Cells(Rows.Count, 4).End(xlUp).Row

' odd row ="S", even row = "H"
For i = 11 To lastrow
    If i Mod 2 Then
    .Cells(i, 3) = "S"
    Else
    .Cells(i, 3) = "H"
    End If
Next
End With

End Sub


0 голосов
/ 27 мая 2020

Используйте переменную, чтобы сначала проверить последнюю строку, если она ниже вашей первой строки автозаполнения, не делайте этого:

Option Explicit
Sub automatic_data_population()

    With ThisWorkbook.Sheets("Sheet1")
        .Range("C11") = "S"
        .Range("C12") = "H"
        .Range("C13").FormulaR1C1 = "=R[-2]C"
        .Range("C14").FormulaR1C1 = "=R[-2]C"
        Dim LastRow As Long: LastRow = .Cells(.Rows.Count, "D").End(xlUp).Row
        If LastRow > 14 Then _
            .Range("C13:C14").AutoFill Destination:=Range("C13:C" & LastRow)
    End With

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