Запуск VBA на другом листе с «с заявлением» - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь запустить макрос на определенном листе и запустить его на другом листе.

Я понимаю, что мог бы просто выбрать лист в вопросе для каждой строки кода, но мне хотелось бы знать, почемуон не работает при использовании «with Statement» (см. код ниже).

Sub IncludeNew()

Application.ScreenUpdating = False

Dim wb As Workbook
Dim ws As Worksheet

Set wb = ActiveWorkbook
Set ws = Sheets("Occupancy")

With ws

    .Columns("C:E").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    .Columns("F:F").AutoFill Destination:=Columns("C:F"), Type:=xlFillDefault
    .Range("Quaterly").Columns(2).copy
    .Range("Quaterly").Columns(2).EntireColumn.Insert
    .Range("C6").copy
    .Range("Quaterly").Cells(12, 2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Application.ScreenUpdating = True
Application.CutCopyMode = False

End With

End Sub

Я получаю сообщение об ошибке "Run-time error 1004" AutoFill method of range class failed.При запуске на фактическом листе он работает просто отлично!

ошибка в .Columns ("F: F"). Назначение автозаполнения: = столбцы ("C: F"), Type: = xlFillDefault

1 Ответ

0 голосов
/ 02 июля 2019

Вы почти у цели.Вы пропустили ..Вместо этого попробуйте .... Destination:=.Columns("C:F")......

Кроме того, какой смысл объявлять переменную книги и не использовать ее?При объявлении переменной рабочего листа вы можете использовать wb.Sheets("Occupancy")

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