Как импортировать данные из CSV-файла в существующую сводную таблицу в Excel - PullRequest
0 голосов
/ 02 апреля 2020

Моя проблема просто в том, что у меня есть файл CSV в определенном формате, и я получаю новые данные в разное время. Мне нужно импортировать данные из файла CSV и добавить его в нижней части существующей таблицы данных, которую я создал ранее, а затем продолжить, как это. В результате я создаю сводную таблицу из этих CSV-файлов.

Могу ли я сделать это с помощью макроса? В качестве дополнительной информации, CSV-файл всегда будет находиться в том же каталоге, что и Excel-файл.

моя таблица данных примерно такая

1 Ответ

1 голос
/ 02 апреля 2020

Я достиг решения проблемы с помощью кода ниже. Вообще-то я много сжимал, но сначала не мог найти. После того, как я разместил здесь новый вопрос, я нашел ответ и взял у this topi c, и я изменил некоторые из них на себя

Sub AutoExpand()

Dim csvFileName As Variant
Dim destCell As Range 'destination Cell
Dim lo As ListObject

Set destCell = yourSheet.Cells(Rows.Count, "A").End(xlUp).Offset(1) 'CHANGE SHEET NAME
csvFileName = Application.GetOpenFilename(FileFilter:="CSV Files (*.csv),*.csv", Title:="Select a CSV File", MultiSelect:=False)
If csvFileName = False Then Exit Sub

With destCell.Parent.QueryTables.Add(Connection:="TEXT;" & csvFileName, Destination:=destCell)
    .TextFileStartRow = 2
    .TextFileParseType = xlDelimited
    .TextFileCommaDelimiter = True
    .Refresh BackgroundQuery:=False
End With

destCell.Parent.QueryTables(1).Delete

Set destCell = yourSheet.Cells(Rows.Count, "A").End(xlUp).Offset(0) 
Set lo = yourSheet.ListObjects("table")
lo.Resize lo.Range.Resize(destCell.Row) 'Resizing table up to added new data from CSV file
End Sub
...