我有一张excel表格供给一个vb.net项目.excel表格有一列数据,可以下载到我的vb表格的alist框中。 这个工作正常,直到没有特别的原因excel表决定成为一个只读文件,这意味着我无法更新我的程序的Excel表单,它不会让我删除或修改任何方式。 我尝试了所有各种方法来解锁包括以安全模式启动并删除然后重新开始。我也尝试重命名文件,但这完全是不切实际的,因为我必须每次我想要替换我的vb项目代码中的名称更新Excel工作表。 当我重新启动计算机时,excel文件显示正常,所有修改privelages返回。 然后我打开vb.net,一切正常,因为Excel表格完美地下载到vb.net程序中。但是这一点(运行vb.net程序一次或多次后)如果我尝试打开Excel文件我把盒子说成"文件现在可用"框说明我的文件现在是"可用于编辑"和#34;选择读写以打开进行编辑" ..当然如果我选择Read_Write我将被带回excel文件但无法以任何方式修改iy。当我最终摆脱这个时刺激性的boc(它似乎自己繁殖,点击excel文件,文件在屏幕上闪烁一瞬间然后迅速消失。 如果我重新启动一切都恢复正常,整个过程重复我尝试以任何方式修改excel文件。 这是我用来从Excel将数据从excel下载到我的列表框中的代码 我只能假设vb程序在某种程度上违反了excel。
Private Sub Button28_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button28.Click
Dim oExcel As Object = CreateObject("Excel.Application")
Dim oBook As Object = oExcel.Workbooks.Open("C:\Users\ dave\Desktop\exammark.xlsm")
Dim oSheet As Object = oBook.Worksheets(1)
Dim i As Integer
Dim cell As String
For i = 0 To AscW(studentList.Items.Count.ToString()(i = i + 1)) - 1
'set cell name, e.g. A1, A2, etc
cell = "I" & Convert.ToString(i + 1)
' get cell data from Excel
cell = oSheet.Range(cell).Value
If cell = "" Then
Exit For
Else
studentList.Items.Add(cell)
End If
Next
oExcel.workbooks.close()
oExcel.Quit()