Доброго времени суток. Пытаюсь импортировать из CSV файла в Эксел. Ниже код отрабатывает ,но в экселе на вкладке "Данные" "Изменить связи" появляется связь и при повторном открытии файла появляется сообщение обновить его, не могу понять почему. Разделитель у CSV файла точка с запятой. [vba]
Код
Sub ImportTxt() With ActiveSheet.QueryTables.Add(Connection:= "TEXT;C:\Documents and Settings\user_name\folder\file.csv", Destination:= Range("$A$1")) .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 1251 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFFalseemicolonDelimiter = True .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .Refresh BackgroundQuery:=False End With End Sub
[/vba]
Доброго времени суток. Пытаюсь импортировать из CSV файла в Эксел. Ниже код отрабатывает ,но в экселе на вкладке "Данные" "Изменить связи" появляется связь и при повторном открытии файла появляется сообщение обновить его, не могу понять почему. Разделитель у CSV файла точка с запятой. [vba]
Код
Sub ImportTxt() With ActiveSheet.QueryTables.Add(Connection:= "TEXT;C:\Documents and Settings\user_name\folder\file.csv", Destination:= Range("$A$1")) .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 1251 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFFalseemicolonDelimiter = True .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .Refresh BackgroundQuery:=False End With End Sub
[/vba] или читать файл в массив, делить его на строки Rows = split(dim,vbcrlf), потом все строки на столбцы Fields=split(Rows(i),",") и вставить в нужную облать, или иные методы.
valdemarg,
А что вы хотите , если вы не фактически импорт делаете, а запрос к этому файлу? А Это именно линковка. Если вам это не нужно то или [vba]
[/vba] или читать файл в массив, делить его на строки Rows = split(dim,vbcrlf), потом все строки на столбцы Fields=split(Rows(i),",") и вставить в нужную облать, или иные методы.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Сообщение отредактировал bmv98rus - Понедельник, 30.01.2017, 21:36
bmv98rus, Спасибо за ответ. Вопрос появился, потому что в некоторых файлах оно появляется, а в некоторых нет. А если после этой конструкции удалять все примерно ка кто так? [vba]
Код
arrLinks = objWb1.LinkSources(1) If Not IsEmpty(arrLinks) Then For i = 1 to Ubound(arrLinks) objWb1.BreakLink arrLinks(i), 1 Next End If For Each Cn In objWb1.Connections Cn.Delete Next
[/vba]
bmv98rus, Спасибо за ответ. Вопрос появился, потому что в некоторых файлах оно появляется, а в некоторых нет. А если после этой конструкции удалять все примерно ка кто так? [vba]
Код
arrLinks = objWb1.LinkSources(1) If Not IsEmpty(arrLinks) Then For i = 1 to Ubound(arrLinks) objWb1.BreakLink arrLinks(i), 1 Next End If For Each Cn In objWb1.Connections Cn.Delete Next