Importar dados de arquivos CSVs é algo tão comum, que o MS Excel já tem um mecanismo próprio para fazer isso. Mas esta continua sendo uma das dúvidas mais comuns. Como fazer essa importação, através do VBA?
Uma alternativa é a de ler o arquivo CSV como se fosse um arquivo texto, e em seguida carregar cada linha em uma matriz, e através de loops inserí-los no MS Excel.
'This sub only provides the sub ImportCSVfile with parametersSub InitiateImportCSVFile()Dim filePath As StringDim ImportToRow As IntegerDim StartColumn As IntegerLet filePath = "E:\Bernardes\Arquivo.csv"Let ImportToRow = 1 'the row where it will start printingLet StartColumn = 1 'the start columnImportCSVFile filePath, ImportToRow, StartColumnEnd Sub' Este é o código que faz todo o trabalho:Sub ImportCSVFile(ByVal filePath As String, ByVal ImportToRow As Integer, ByVal StartColumn As Integer)Dim line As StringDim arrayOfElementsDim element As VariantOpen filePath For Input As #1 ' Open file for inputDo While Not EOF(1) ' Loop until end of fileImportToRow = ImportToRow + 1Line Input #1, lineLet arrayOfElements = Split(line, ";") 'Split the line into the array.' Loop thorugh every element in the array and print to ExcelfileFor Each element In arrayOfElementsLet Cells(ImportToRow, StartColumn).Value = elementLet StartColumn = StartColumn + 1NextLoopClose #1 ' Close file.End Sub