Excel VBA скопировать вставить ячейки без уведомления пользователя - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть макрос, который копирует и вставляет много ячеек в другой лист. Это отлично работает, мой вопрос:

Можно ли запустить весь макрос в фоновом режиме?

Поскольку макрос будет использоваться неопытными пользователями Excel, я не хочу, чтобы они видели, как макрос прыгает и копирует множество данных, что сводит экран с ума.

Спасибо за ваши ответы заранее!

Ответы [ 3 ]

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

У вас есть следующие инструменты для достижения ваших целей:

  • Application.ScreenUpdating = False 'отключите обновление экрана

Это будет скрывать любые обновления экрана, пока вы не включитеэто снова.Если ваше приложение прыгает с различными .Activate и т. Д., Вы можете сохранить начальную точку выбора до

  • различных событий, вызванных Sub

Чтобы начать что-то "вфон "вы можете инициировать его

Workbook.Open
Workbook.SheetActivate, Workbook.SheetDeactivate
Worksheet.Activate, Worksheet.Deactivate
' etc.
0 голосов
/ 25 апреля 2018

Полагаю, ваш «макрос» выглядит следующим образом.

Sub Macro1()
    Sheets("Sheet1").Select
    ActiveWindow.SmallScroll Down:=4
    Range("J16").Select
    Selection.Copy
    Sheets("Sheet2").Select
    ActiveWindow.SmallScroll Down:=5
    ActiveWindow.SmallScroll ToRight:=2
    Range("I19").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Sheet1").Select
    ActiveWindow.SmallScroll Down:=-72
    Range("A1").Select
End Sub

Было бы лучше, если бы вы написали так.

Option Explicit

Sub Macro1()
    With Worksheets("Sheet2")
        .Range("I19") = Worksheets("sheet1").Range("J16").Value
    End With
End Sub

Узнайте больше с КакИзбегайте использования Select в Excel VBA. .

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

Используйте application.screenupdating = false в начале макроса

затем Application.Screenupdating = true в конце, и экран не будет прыгать.

Также стоит добавить Msgbox("The macro has finished!") или что-то подобное в конце, чтобы они знали, что он сделал свое дело.

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