首页 > 解决方案 > 类型与工作簿不匹配。打开

问题描述

我有一个更大的代码集来帮助自动化审计模型。我正在尝试添加一个功能来导入索赔文件。我有一个“GetFiles”函数,我经常使用它来导入信息,但现在我收到类型不匹配错误。

我已经尝试过不同的变量分配并完全量化不同的项目,但无论如何它似乎都会出错。最初我在做OpenFile = GetFiles(见注释行)然后我的公式读作set aux = application.workbooks.open(OpenFile)但同样的错误

这是代码的一小部分,因此许多声明的变量在此代码段中不可见。还有一些关于“ThisWorkbook”的注释行,因为该模块将从我的个人工作文件移动到实际的模板模型中。

Sub Audit_Template_Autofill()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
    Dim column_id() As Variant, A1 As Range, Z As Range, c As Range
    Dim column_count As Long, x As Long, input_option() As Variant, Loop_Input As Variant
    Dim claims As Worksheet, audit As Worksheet, OpenFile As Variant, aux As Workbook
    'run function to get claims file for import
    'GetFiles

'    Set claims = ThisWorkbook.Sheets("Claims Data")
'    Set audit = ThisWorkbook.Sheets("Audit")
    Set claims = ActiveWorkbook.Sheets("Claims Data")
    Set audit = ActiveWorkbook.Sheets("Audit")
    'OpenFile = GetFiles
    Set aux = Application.Workbooks.Open(GetFiles)
    ActiveWorkbook.ActiveSheet.Cells.Select.Copy
    claims.Range("A1").Paste
    Set A1 = claims.Range("A1")
    Set Z = A1.End(xlToRight).Offset(0, 1)

    column_count = claims.Range(A1, Z).Count
    ReDim column_id(0 To column_count): ReDim input_option(0 To column_count)

    For Each c In Range(A1, Z)
        column_id(x) = c.Value
        x = x + 1
    Next c

    x = 0
    Do While x <= column_count
        input_option(x) = x + 1 & "=" & column_id(x)
        x = x + 1
    Loop

    x = 0
    Do While x <= column_count
        Loop_Input = Loop_Input & input_option(x) & vbCrLf & ""
        x = x + 1
    Loop

错误发生在set aux = Application.Workbooks.open(GetFiles)

这是函数 GetFiles

Function GetFiles() As Variant
    GetFiles = Application.GetOpenFilename(Title:="Select Files(s)", MultiSelect:=True)
End Function

我希望该功能允许我打开一个工作簿,然后它将继续导入信息并继续使用代码。出现文件选择框,但是当我选择一个 excel 文件并点击确定时,我收到类型不匹配错误。为冗长的文字道歉,对于 Stack Overflow 来说还是新手。再次感谢!

标签: excelvba

解决方案


推荐阅读