Открыть CSV-файл в активной рабочей таблице VBA на Ma c

Я пытаюсь переписать свой код Windows VBA, чтобы я мог использовать его на компьютере Mac. Но почему-то невозможно загрузить информацию в активный рабочий лист на Mac.

Где MyFiles - это файл csv, открытый кодом http://www.rondebruin.nl/mac/mac015.html. Я немного сломал код, потому что думал, что он не распознает рабочую книгу. Но я думаю, что проблема заключается в рабочей книге.

Set ws = ActiveWorkbook.Sheets("1. Pledges (ruw)")

    MyFiles = MacScript(MyScript)
    On Error GoTo 0


    If MyFiles <> "" Then
        With Application
            .ScreenUpdating = False
            .EnableEvents = False
        End With

        With ws.QueryTables.Add(Connection:="TEXT;" & MyScript, Destination:=ws.Range("A1"))
            .TextFileParseType = xlDelimited
            .TextFileCommaDelimiter = True
            .Refresh
        End With

        If ws.Range("A2").Value = vbNullString Then
            ws.rows("2").EntireRow.Delete
        End If

        With Application
            .ScreenUpdating = True
            .EnableEvents = True
        End With
    End If

End Sub

Некоторым образом он всегда падает на.refresh, даже если я использую код робина, я не могу использовать таблицы запросов, которые отлично работают на окнах.

Оригинальный код Windows:

Dim ws As Worksheet, strFile As String

    Set ws = ActiveWorkbook.Sheets("1. Pledges (ruw)") 'set to current worksheet name

    strFile = Application.GetOpenFilename("Text Files (*.csv),*.csv", , "Please selec text file...")

    With ws.QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=ws.Range("A1"))
         .TextFileParseType = xlDelimited
         .TextFileCommaDelimiter = True
         .RefreshOnFileOpen = False
         .BackgroundQuery = True
         .SaveData = True

    End With

    If ws.Range("A2").Value = vbNullString Then
        ws.rows("2").EntireRow.Delete
    End If

0 ответов

Другие вопросы по тегам