top of page

vba to open a .csv


Tonight's tip is simply some vba code I found posted to stack overflow. It will allow you to open any .csv file that you select. It can be a key ingredient in a more complex series of macros that you build in Excel.

Sub Import_log()

With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;" & GetFile, Destination:=Range( _ "$A$2")) .Name = "logexportdata" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 437 .TextFileStartRow = 2 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = False .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(5, 2, 2, 2, 2, 2, 9, 9, 9, 9, 9) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With End Sub

Function GetFile() As String Dim filename__path As Variant filename__path = Application.GetOpenFilename(FileFilter:="Csv (*.CSV), *.CSV", Title:="Select File To Be Opened") If filename__path = False Then Exit Function GetFile = filename__path End Function


bottom of page