Несоответствие типов с Workbooks.Open - PullRequest
0 голосов
/ 05 ноября 2019

У меня большой кодовый набор, чтобы помочь автоматизировать модель аудита. Я пытаюсь добавить функцию для импорта файла утверждений. У меня есть функция «GetFiles», которую я регулярно использую для импорта информации, но теперь я получаю ошибку несоответствия типов.

Я уже пробовал разные назначения переменных и полностью количественно определял различные элементы, но, похоже, все равно ошибался. Первоначально я делал OpenFile = GetFiles (см. Закомментированную строку), а затем моя формула читалась как set aux = application.workbooks.open(OpenFile), но с той же ошибкой

Это небольшая часть кода, поэтому некоторые объявленные переменные не видны в этомsnippet.There также некоторые закомментированные строки, касающиеся "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 и нажимаю кнопку ОК, я получаю ошибку несоответствия типов. Извиняюсь за длинный текст, все еще плохо знакомый с переполнением стека. Еще раз спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...