Excel выбрать последние два столбца и расширить - PullRequest
0 голосов
/ 12 декабря 2018

Мне нравится иметь код VBA, который выбирает последние два столбца моего листа.Когда столбцы выбраны, они должны быть расширены до столбца DI.

что у меня есть код:

Private Sub CommandButton2_Click()
'select the last two columns

    Range("G9").Select
    Selection.End(xlToRight).Select
    ActiveCell.EntireColumn.Resize(, 2).Offset(, -1).Select

'Extend the two last columns until it have reached column: DI

End Sub

Теперь мне нужно только добавить код для перетаскивания двух столбцовпока он не достиг столбца «DI», как показано на рисунке ниже.У меня нет репутации для изображений, поэтому он стал ссылкой изображение

какие-либо идеи?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Спасибо всем за помощь, я немного отредактировал код, чтобы он работал для меня.

Private Sub CommandButton4_Click()
Dim rng As Range
Dim rngStart As Range
Dim rngEnd As Range
Dim rngX As Range

With ThisWorkbook.Worksheets("Blad1")
    Set rngStart = .Cells(9, .Columns.Count).End(xlToLeft).Offset(, -1).EntireColumn
    Set rngEnd = .Cells(9, .Columns.Count).End(xlToLeft).EntireColumn
    Set rng = .Range(rngStart, .Columns("DI"))
    Set rngX = .Range(rngStart, rngEnd)

End With
rngX.AutoFill rng, xlFillDefault
0 голосов
/ 12 декабря 2018

Это выберет столбцы между последним столбцом (на основе данных в строке 9, когда вы использовали G9) и столбцом DI.

Sub test()

    Dim rng As Range

    With ThisWorkbook.Worksheets("Sheet1")
        Set rng = .Range(.Cells(9, .Columns.Count).End(xlToLeft).EntireColumn, .Columns("DI"))
    End With

    'Try not to select ranges before using them.
    MsgBox rng.Address
    rng.Interior.Color = RGB(255, 255, 0) 'Turn background to yellow.

    rng.Select 'Select the range.

End Sub

В выборку будет включен последний заполненный столбец.
Поэтому вместо этого можно использовать .Cells(9, .Columns.Count).End(xlToLeft).Offset(, 1).EntireColumn.

Также, если последний заполненный столбец -> DI, он будет выбирать назад, поэтому может выбрать, например, столбец DN:DI.

Редактировать:
Для автозаполнения от последнего заполненного столбца к столбцу DI:

Sub test()

    Dim rng As Range
    Dim rngStart As Range

    With ThisWorkbook.Worksheets("Sheet1")
        Set rngStart = .Cells(9, .Columns.Count).End(xlToLeft).Offset(, -1).EntireColumn.Resize(, 2)
        Set rng = .Range(rngStart, .Columns("DI"))
    End With

    rngStart.AutoFill rng, xlFillValues

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