【发布时间】:2013-06-12 19:56:54
【问题描述】:
我正在尝试在打开 excel 时清除打印区域和自动筛选: 我是 Excel vba 的新手,所以从谷歌搜索中组装了以下代码 这段代码我已将 Personal.xlsb 的 ThisWorkbook 放入 XLstart 文件夹中,当然宏安全性已设置为启用所有宏
Option Explicit
Public WithEvents xlApp As Excel.Application
Private Sub Workbook_Open()
Set xlApp = Application
End Sub
Private Sub Workbook_Close()
Set xlApp = Nothing
End Sub
Private Sub xlApp_WorkbookOpen(ByVal Wb As Workbook)
Application.EnableEvents = False
Call ClrPrntArea
Application.EnableEvents = True
End Sub
这里是 ClrPrntArea
Sub ClrPrntArea()
Dim ws As Object
For i = 1 To ActiveWorkbook.Worksheets.count
With Worksheets(i)
.PageSetup.PrintArea = ""
.PageSetup.FitToPagesWide = 1
End With
Next
End Sub
我还将在个人 xlsb 中对模块进行另一个宏调用,以便在上述开始工作后重置自动调整器。任何输入都会非常有帮助
【问题讨论】:
-
为什么需要一个新的 Excel 实例并使用该实例打开工作簿?开/关
EnableEvents有什么用? -
嘿 Kalpesh,我的印象是我们需要启用事件以在工作表上执行某些操作...
-
不,没有必要。事件是一个钩子,可以为对象上调用的某些方法编写代码。