Is there a way to import data from .csv to active excel sheet?

前端 未结 4 2108
无人及你
无人及你 2020-12-05 19:40

I have a csv file always named the same, called SO2PO.csv. It has data that I import into an excell sheet called PO Data, in a workbook called Open Order. I need to find a w

4条回答
  •  难免孤独
    2020-12-05 20:04

    it is possible.

    Without vba you would use the DATA-Tab and import from text source.

    With vba you could open the csv as a new Workbook:

    Public Function openSource(fileToOpen As String) As Excel.Workbook
    On Error GoTo err_exit
    
        Dim f As Object
        Dim fs As Object
    
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set openSource = Nothing
    
        If fs.fileexists(fileToOpen) Then
            Set f = fs.GetFile(fileToOpen)
    
            Set openSource = ThisWorkbook.Application.Workbooks.Open( _
                FileName:=f.path, _
                UpdateLinks:=2, _
                ReadOnly:=True, _
                AddToMRu:=False, _
                Notify:=False)
    
            Windows(openSource.Name).Visible = False
        End If
        Exit Function
    err_exit:
        'throwErrMsg "Failed to read File!", "openSource"
        If Not openSource Is Nothing Then
            openSource.Close SaveChanges:=False, RouteWorkbook:=False
        End If
    End Function
    
    Dim CSVWorkbook As New Excel.Workbook
    Set CSVWorkbook = openSource(c:\SO2PO.csv)
    

    Now you can navigate through this workbook like any other and copy rows, cols or a whole worksheet ;) hope this helps.

    Another way would be to use the import from text in vba version, but i don't have an example right away.

提交回复
热议问题