我在这里有一个问题,我已经工作了几个小时。
我正在导入一个 Excel 文件,并使用此代码来执行此操作:
Dim objExcel As Excel.Application
Dim objWorkBook As Excel.Workbook
Dim totalWorkSheets As Excel.Worksheet
Dim ExcelSheetName As String = ""
objExcel = CreateObject("Excel.Application")
objWorkBook = objExcel.Workbooks.Open(excelfile, Notify:=False)
objExcel.DisplayAlerts = False
Dim exConS As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & excelfile & ";Extended Properties=Excel 8.0;"
For Each totalWorkSheets In objWorkBook.Worksheets
ExcelSheetName += totalWorkSheets.Name
Dim exCon As New OleDbConnection(exConS)
Dim dsExcel As New DataSet()
exCon.Open()
Dim sExcel As String = "SELECT * FROM [" & totalWorkSheets.Name & "$]"
Dim daExcel As New OleDbDataAdapter(sExcel, exCon)
daExcel.Fill(dsExcel)
exCon.Close()
Next totalWorkSheets
objWorkBook.Close()
objExcel.Quit()
Dim ggProcess As New Process
ggProcess = Process.Start("EXCEL.EXE")
ggProcess.Kill()
问题是当我运行代码时,以下对话框不断出现:
如何防止出现此弹出对话框?
最佳答案
正如poweruser所建议的那样,可以简单地改变
objWorkBook = objExcel.Workbooks.Open(excelfile, Notify:=False)
至
objWorkBook = objExcel.Workbooks.Open(excelfile, Notify:=False, Readonly:=True)
好的,因为这不起作用,我已经更详细地查看了代码,并认为您的问题是因为您正在打开 excel 文件,然后创建到它的外部连接。不必打开该文件即可创建与其的 OLEDB 连接。
看来您事先不知道选项卡名称,因此您需要打开文件以获取选项卡名称?
如果是这样,我将创建一个方法来打开文件获取选项卡名称并返回选项卡名称数组,然后您可以在上面的代码中迭代,然后关闭文件。
关于excel - 阻止文件现在可用 弹出 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7605823/