首页 > 解决方案 > 无法以读/写模式打开工作簿

问题描述

我正在尝试将不同的宏应用于文件夹中存在的每个 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 文件),或者以其他方式修改这些文件并保存更改?

标签: excelvba

解决方案


推荐阅读