Автозаполнение именованного диапазона в vba - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь написать макрос для автоматического заполнения диапазона, как вы можете видеть на фотографии:

enter image description here

Я пробовал это код и он возвращает ошибку:


Sub Auto()

Dim selection1 As Range
Dim selection2 As Range
h = 1
g = 1


Эти два цикла я использовал, чтобы обнаружить первую пустую ячейку в столбце AZ, чтобы обратиться к ее диапазону позже

Do Until Cells(h + 1, 52).Value = ""
h = h + 1

Loop
Do Until Cells(g + 1, 1).Value = ""
g = g + 1

Loop


Set selection1 = Range("AZ" & h & ":" & "BD" & h)



Set selection2 = ActiveSheet.Range("AZ" & g & ":" & "BD" & g)

Это где я тестировал вышеупомянутая идея, и она работала нормально, и диапазон выбран, как и должно быть, как показано на фотографии

Range("AZ" & h & ":" & "BD" & h).Select


'Autofill

Это где я получил ошибку:

'Selection.AutoFill Destination:=Range("AZ" & g & ":" & "BD" & g), Type:=xlFillDefault







End Sub

Любые идеи?

1 Ответ

0 голосов
/ 18 марта 2020

Это автоматически заполняет данные.
Метод поиска последней строки такой же, как переход к последней строке и нажатие Ctrl + Up .

Sub Test()

    Dim LastRow1 As Long, LastRow2 As Long

    With ThisWorkbook.Worksheets("Sheet1")
        LastRow1 = .Cells(.Rows.Count, "AY").End(xlUp).Row 'Find last row in column AY.
        LastRow2 = .Cells(.Rows.Count, "AZ").End(xlUp).Row 'Find last row in column AZ.

        .Range(.Cells(LastRow2, "AZ"), .Cells(LastRow2, "BD")).AutoFill _
            Destination:=.Range(.Cells(LastRow2, "AZ"), .Cells(LastRow1, "BD"))
    End With

End Sub
...