Excel vba - избавление от .activate and.select - PullRequest
0 голосов
/ 24 апреля 2018

Мой код ниже запускается из ThisWorkbook. Он открывает wb_gr (уже сделано), и я пытаюсь выполнить автозаполнение на листе "sh_9_overtid_år" от D3 и до конца последней использованной ячейки в строке A. Код работает, но я хочу избавиться от всех .activate и .selcet и запустить его со скрытыми листами. Но у меня нет навыков, чтобы справиться с этим ... Кто-нибудь, кто может помочь мне с тем, как изменить этот бит кода?

wb_gr.Activate
sh_9_overtid_år.Select
Range("D3:D3").Select
lr = Range("A" & Rows.Count).End(xlUp).Row
Selection.AutoFill Destination:=Range("D3:D" & lr), Type:=xlFillDefault

Ответы [ 2 ]

0 голосов
/ 24 апреля 2018

Предполагая, что sh_9_overtid_år является полностью определенным диапазоном (и AutoFill требуется из-за D3, содержащего формулу), это должно сделать это:

With sh_9_overtid_år
    lr = .Range("A" & .Rows.Count).End(xlUp).Row
    .Range("D3:D3").AutoFill Destination:=.Range("D3:D" & lr), Type:=xlFillDefault
End With
0 голосов
/ 24 апреля 2018

Вы можете использовать оператор С для работы со скрытыми листами.Кроме того, автозаполнение здесь не нужно, я думаю.

Option Explicit

Sub test()

Dim lr As Long

    With ThisWorkbook.Worksheets("Sheet1")  '<== change this to your workbook.worksheet e.g. maybe  wb_gr.sh_9_overtid_år

        lr = .Range("A" & .Rows.Count).End(xlUp).Row
        .Range("D3:D" & lr).Value = .Range("D3")

    End With

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