【发布时间】:2014-10-05 19:37:54
【问题描述】:
我正在构建一个宏来打开文件夹中的每个文件,检查它是否共享,如果是,则取消共享,保存并关闭它。它嵌入在该文件夹LockFolder.xlsm 中的一个文件中,所以我需要它跳过它所在的文件,否则它会在循环中途自行关闭。
最初有一个 If Filename <> 'Lockfolder.xlsm' Then 工作正常,但我在其中嵌套 If 语句 If Activeworkbook.MultiUserEditing 时遇到了麻烦,所以我认为将前者放在“Do While”部分可能更容易代码。
它不工作。代码仍然会打开我希望它跳过的文件,然后将其关闭,仅将几个文件中止到循环中。
我做错了什么?
Sub Unshare()
Dim FileName As String
Dim cPwd As String
FileName = Dir(CurDir() & "\" & "*.xls")
Do While FileName <> "LockFolder.xlsm" Or FileName <> ""
Application.DisplayAlerts = False
Workbooks.Open (CurDir & "\" & FileName)
If ActiveWorkbook.MultiUserEditing Then
ActiveWorkbook.ExclusiveAccess
ActiveWorkbook.Save
ActiveWorkbook.Close
Else
ActiveWorkbook.Close
End If
FileName = Dir()
Loop
Application.DisplayAlerts = True
End Sub
【问题讨论】: