我试图将不同的宏应用于文件夹中存在的每个excel文件,并向其中添加几张纸,为此,我遍历了文件夹中的所有文件并逐一打开它们。
但是,我偶然发现了一个问题,即我打开的每个工作簿都处于只读模式,因此无法在修改后保存它。
将ReadOnly参数设置为False,将IgnoreReadOnlyRecommended参数设置为True不会更改任何内容,并且该工作簿仍将作为只读工作簿打开。
Sub RunOnAllFilesInFolder()
Dim folderName As String, fileName As String
Dim wb As Workbook
folderName = "H:\mypath"
fileName = Dir(folderName & "\*.xlsx")
Debug.Print (fileName)
Do While fileName <> ""
Set wb = Workbooks.Open(fileName:=folderName & "\" & fileName, ReadOnly:=False, IgnoreReadOnlyRecommended:=True)
MsgBox (wb.ReadOnly)
wb.Activate
Call my_sub
Application.DisplayAlerts = False
wb.SaveAs (folderName & "\" & fileName)
wb.Close SaveChanges:=False
Set wb = Nothing 'clean up
Application.DisplayAlerts = True
Debug.Print "Processed " & folderName & "\" & fileName
fileName = Dir()
Loop
End Sub
谁会知道为什么该文件以只读文件形式打开(尽管只是一个普通的excel文件),还是以其他方式修改这些文件并保存更改?