在Mac上的活动工作表vba中打开一个csv文件

时间:2016-09-20 14:28:33

标签: macos vba csv .refresh

我正在尝试重写我的Windows VBA代码,以便我可以在Mac计算机上使用它。 但不知何故,无法将信息加载到mac上的活动工作表中。

MyFiles是由http://www.rondebruin.nl/mac/mac015.html代码打开的csv文件 。 我稍微分解了代码,因为我认为它没有识别工作簿。但我认为问题出在工作簿上。

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上崩溃,即使我使用了robin的代码,我也无法使用在windows上完美运行的查询表。

原始的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 个答案:

没有答案