【问题标题】:EXCEL import to AccessEXCEL 导入 Access
【发布时间】:2020-07-13 21:55:59
【问题描述】:

我在使用 VBA 代码时遇到了一些问题,该代码应将 excel 数据导入我的访问数据库。当我运行代码时,我收到一个运行时错误“运行时错误 438 对象不支持此属性或方法”。来自我在其他论坛上的阅读;我知道这个问题可能是一个库问题(在使用另一个库时引用一个库)我对 VBA 有点陌生。我不知道它是否相关,但在我遇到这个错误之前,我有一个“erreur 429 activeX component can't create object”,我已经解决了。

这是我认为负责的代码部分。

      On Error GoTo erreur

'déclaration des variables
Dim app As Object
Dim wkb As Object
Dim wks As Object

'initialisation des variables
Set app = CreateObject("Excel.Application")
Set wkb = app.Workbooks.Add
Set wks = wkb.Worksheets(1)
wkb = app.Workbooks.Open("C:\Users\souleimane\Desktop\Internship\donnee_excel\table_de_corresp.xls")
wks = wkb.Worksheets("sheet1")

我尝试在调试菜单上运行编译选项,但没有弹出任何内容。 任何帮助表示赞赏,如果您认为这不是负责的代码部分,那么我可以发布其余部分。

【问题讨论】:

    标签: excel ms-access vba


    【解决方案1】:

    如果要将对象类型分配给变量,则需要使用Set,因此最后两行应该是:

    Set wkb = app.Workbooks.Open("C:\Users\souleimane\Desktop\Internship\donnee_excel\table_de_corresp.xls")
    Set wks = wkb.Worksheets("sheet1")
    

    另外,您可以省略这些行:

    Set wkb = app.Workbooks.Add
    Set wks = wkb.Worksheets(1)
    

    取决于您稍后是否在代码中使用添加的工作簿。您绝对可以省略Set wks = wkb.Worksheets(1),因为该行没有副作用,您在两行后重新分配wks

    【讨论】:

    • 感谢,这立即解决了这个问题。虽然一个新的来了。这个被命名为“Erreur 9 Subscript out of range”。您是否碰巧对此有所了解。
    • 可能意味着您没有名为“sheet1”的工作表,所以它会在Set wks = wkb.Worksheets("sheet1") 行出错
    • 嗯,其实excel文件是一个“法语”的excel文件。所以 sheet 1 被称为 feuil 1 。它解决了问题,但又出现了另一个问题:s。 “Erreur 1009 应用程序定义或对象定义错误”。
    • 需要查看Set wks = wkb.Worksheets("feuil1") 之后的代码行才能解决这个问题。您可能应该为此创建一个新问题
    猜你喜欢
    • 2012-11-24
    • 2010-12-04
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多