【问题标题】:Saving Excel File is changing the file access to read only保存 Excel 文件正在将文件访问权限更改为只读
【发布时间】:2015-02-21 17:58:04
【问题描述】:

单击复选框时,我正在尝试保存 excel 文件。这是我的代码:

Private Sub CheckBox_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged

    'MsgBox(CType(sender, CheckBox).Name)

    Dim objExcel, objWorkbook, fileLocation

    fileLocation = "C:\Users\batman\Desktop\test3"

    objExcel = CreateObject("Excel.Application")
    objWorkbook = objExcel.Workbooks.Open _
        (fileLocation)

    Dim strArray() As String
    strArray = CType(sender, CheckBox).Name.Split(",")


    objWorkbook.WorkSheets(CInt(strArray(0))).Activate()
    objExcel.Cells(CInt(strArray(1)), 3).Value = "From Windows Form"


    objWorkbook.Application.DisplayAlerts = False
    objWorkbook.SaveAs(fileLocation)
    objWorkbook.Close(SaveChanges:=False)

End Sub

当我单击所需的复选框时,我可以看到 excel 值正在更新。但是文件test3 访问现在已更改为Read-Only 模式。所以下一次相同的点击处理程序失败并出现异常:

Cannot save read-only file system: test3.xlsx

我在哪里犯了错误?我正在使用 Microsoft excel 2007。

【问题讨论】:

  • XLSX 文件属性是只读的还是你对蝙蝠侠桌面的权限是只读的?

标签: .net vb.net excel winforms


【解决方案1】:

问题是您在属性上加了两个点并且调用Close 并没有关闭第一个 Excel 应用程序。如果您查看任务管理器,您可能会看到它正在运行。

解决方案是不要双点属性或方法并使用Marshal.ReleaseCOMObject(...),然后您的工作簿应该干净地关闭。

【讨论】:

    猜你喜欢
    • 2017-01-29
    • 2020-03-07
    • 2014-03-16
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 2019-11-17
    • 2012-01-29
    • 1970-01-01
    相关资源
    最近更新 更多