因此,我为Excel 2011 for Mac创建了一个常用的Excel库。我正在进行一些测试,以确保它正常工作。我遇到的最大问题是,当我运行代码时(尽管将ScreenUpdating设置为False),它在运行宏时会明显打开库文件。
为了确保这是有效的,我希望防止这种情况发生。这是我目前的代码:
Sub findRow()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False
Dim bk As Workbook
Dim result As Long
Dim aWB As Workbook
Dim aWS As Worksheet
Set aWB = ActiveWorkbook
Set aWS = ActiveWorkbook.ActiveSheet
With Application
.ScreenUpdating = False
.DisplayAlerts = False
.EnableEvents = False
Set bk = .Workbooks.Open _
(ActiveWorkbook.Path & ":library.xlsm")
'Set bk = ActiveWorkbook.Path & ":library.xlsm"
End With
'Workbooks.Open (ActiveWorkbook.Path & ":library.xlsm")
'Workbooks.Open (bk)
result = Application.Run("'" & ActiveWorkbook.Name & "'!findFirstEmptyRow", aWS)
ActiveWorkbook.Close
Cells(result, 1) = result
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.EnableEvents = True
End Sub
在那里有很多裁员以及评论出的线条显示了我尝试过的各种各样的事情。最初我只是运行将Application.X设置为False的代码,打开工作簿,运行宏,然后关闭。
希望有人能够提出ScreenUpdating在我打开新工作簿时不生效的原因。
答案 0 :(得分:2)
将ScreenUpdating设置为false仅会阻止显示电子表格更新。它不会自己隐藏工作簿的开头。虽然有一些方法可以隐藏工作簿的打开,或者在不创建Excel实例的情况下访问工作簿数据,但是对于您创建VBA库的任务,可以采用的方法是创建Excel添加-在。加载项不仅允许您从任何Excel实例使用宏,还可以编辑代码并从任何实例向公共存储库添加新宏。