加快宏观 [英] Speed up macro

查看:72
本文介绍了加快宏观的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hello Guys,



如何加快下面的宏?


'选项明确< br $>


Sub Update_Headers()

  &NBSP; Application.ScreenUpdating = False

  &NBSP; Application.EnableEvents = False

  &NBSP; Application.DisplayStatusBar = False

  &NBSP; Application.Calculation = xlCalculationManual

  &NBSP; ActiveSheet.DisplayPageBreaks = False



  &NBSP; Dim ws As Worksheet

  &NBSP; For Ws In Worksheets

  &NBSP; &NBSP; &NBSP;如果IsNumeric(左(ws.Name,2))则为
  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; ws.PageSetup.LeftHeader = Sheet2.Range(" B2")& vbLf& Sheet2.Range(" B25")



  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; PageNum = CInt(左(修剪(ws.Name),2))

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;如果PageNum = 17或PageNum = 20则为
  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; Txt =左(ws.Name,4)

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;否则

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; Txt =左(ws.Name,2)

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;结束如果



  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; ws.PageSetup.CenterFooter =" Page" &安培; Txt& " 44的"

  &NBSP; &NBSP; &NBSP;结束如果

  &NBSP;下一张ws



  &NBSP; Application.Calculation = xlCalculationAutomatic

  &NBSP; Application.EnableEvents = True

  &NBSP; Application.ScreenUpdating = True

  &NBSP; Application.DisplayStatusBar = True

  &NBSP; ActiveSheet.DisplayPageBreaks = True



  &NBSP; MsgBox"Headers updated successfully successfully",vbInformation

End Sub




Dhaval Paun

解决方案

尝试添加


Application.PrintCommunication = False


到第一个代码块,


Application.PrintCommunication = True


到最后一个块。


Hello Guys,

How to speed up below macro?

'Option Explicit

Sub Update_Headers()
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Application.DisplayStatusBar = False
    Application.Calculation = xlCalculationManual
    ActiveSheet.DisplayPageBreaks = False

    Dim ws As Worksheet
    For Each ws In Worksheets
        If IsNumeric(Left(ws.Name, 2)) Then
            ws.PageSetup.LeftHeader = Sheet2.Range("B2") & vbLf & Sheet2.Range("B25")

            PageNum = CInt(Left(Trim(ws.Name), 2))
            If PageNum = 17 Or PageNum = 20 Then
                Txt = Left(ws.Name, 4)
            Else
                Txt = Left(ws.Name, 2)
            End If

            ws.PageSetup.CenterFooter = "Page " & Txt & " of 44"
        End If
    Next ws

    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    Application.DisplayStatusBar = True
    ActiveSheet.DisplayPageBreaks = True

    MsgBox "Headers updated successfully", vbInformation
End Sub


Dhaval Paun

解决方案

Try adding

Application.PrintCommunication = False

to the first block of code, and

Application.PrintCommunication = True

to the last block.


这篇关于加快宏观的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆