Я пытаюсь применить разные макросы к каждому файлу 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), или как можно изменить эти файлы и сохранить изменения?