excel - 阻止文件现在可用 弹出 Excel

标签 excel vba

我在这里有一个问题,我已经工作了几个小时。

我正在导入一个 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()

问题是当我运行代码时,以下对话框不断出现:

pop up

如何防止出现此弹出对话框?

最佳答案

正如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/

相关文章:

Excel VBA 如果单元格注释失败

excel - 随机化一组值而不重复值索引

python - 沿着 apache-spark 中的映射在 excel 文件中写入 RDD 数据

vba - 需要帮助在 VBA 中优化 SUMIFS

excel - NPOI:实现像Excel格式化一样的货币格式

vba - 如何仅允许特定用户取消隐藏工作表

vba - 如果 B 列中的任何单元格包含字符串 X,则删除行并将单元格上移

excel - VBA 初学者 : Greater than

excel - 如何使用 VBA 在 Internet Explorer 中单击按钮

vba - 在 for 循环中跳过迭代(VBA excel)