Excel VBA автозаполнение поперек и вниз - PullRequest
0 голосов
/ 23 мая 2018

Хорошо ... Я борюсь с чем-то, что, вероятно, просто ... У меня есть формула в ячейке B2, и я хочу заполнить до последней ячейки, которая содержит данные или форматирование (так же, как когда вы нажимаете CTRL + END)или другими словами «нижний правый угол» моих данных.Как мне это сделать?В столбце «A» и в строке «1» есть данные ... Поэтому необходимо заполнить их до последней строки и последнего столбца, содержащего данные ...

lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
lastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
Range("B2").AutoFill Destination:=Range(Range("B2"), Cells(2, lastCol)), Type:=xlFillDefault
Range("B2:B" & lastCol).AutoFill Destination:=Range("B2"), Cells(lastRow, lastCol)), Type:=xlFillDefault

1 Ответ

0 голосов
/ 24 мая 2018

Приведенный ниже код поможет вам определить и указать ваш «диапазон ящиков».Код делает 3 предположения, которые вам, возможно, придется изменить, если они неверны:

1) «Верхний левый угол» вашего диапазона ячеек равен B2

2) Значения в столбце B охватываютнижняя часть вашего диапазона.Если вы ожидаете пропуски в столбце B, измените его на другой столбец.

3) Значения в строке 2 охватывают конец используемых столбцов.Если вы ожидаете пропуски в строке 2, измените это на другую строку.

Sub RangeBox()

Dim WS As Worksheet
Set WS = ThisWorkbook.Sheets(1)

Dim LRow As Long
Dim LCol As Long

LRow = WS.Range("B" & WS.Rows.Count).End(xlUp).Row
LCol = WS.Cells(2, Columns.Count).End(xlToLeft).Column

MsgBox "Last Row: " & LRow & vbNewLine & "Last Column: " & LCol

'How to refer to the box range starting from A1
Dim Start As Range
Set Start = WS.Range("B2")

WS.Range(Start, WS.Cells(LRow, LCol)).Select

End Sub

Чтобы заполнить этот диапазон формулой:

WS.Range(Start, WS.Cells(LRow, LCol)).Formula = "=Sum(1,2)"

Внутри кавычек введите уравнение, как в Excel, и при необходимости используйте заблокированные ссылки ($).В приведенном выше примере ваш диапазон будет заполнен значением 3.

...