Хочу написать макро, который бы брал из ячейки значение с полным путем к файлу и далее запускал импорт текстового файла в эксель. Сам импорт написал на кнопках, а вот с указанием пути/или его интерпретацией как пути какая-та проблема. Отладчик выдает ошибку, что excel не может найти текстовый файл, а дебаггер останавливается на последней строке ".Refresh BackgroundQuery:=False".
Вот сам текст:
Sub process_txt_grids1()
Dim pth As String
pth = Sheets("main_helper").Range("B13")
Dim ifl As String
ifl = "TEXT;fp"
Sheets.Add.Name = "helper1"
Sheets("helper1").Select
With ActiveSheet.QueryTables.Add(Connection:=ifl, Destination:=Range("A1"))
.Name = ""
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 3
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileDecimalSeparator = "."
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
Примечание:
в итоге поменял на:
Dim pth As Variant
pth = Sheets("main").Range("B11")
Dim ifl As String
ifl = "TEXT;" & pth
Sheets.Add.Name = "helper1"
Sheets("helper1").Move After:=Sheets("main")
Sheets("helper1").Select
With ActiveSheet.QueryTables.Add(Connection:=ifl, Destination:=Range("A1"))
.Name = ""
далее по тексту...
все работает.
спасибо!
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.