Как используя код VBA сохранить файл после выполнения импорта данных с указанного пользователем файла в папку которая являеться родительской для папки в которой находиться файл для импорта данных (D:\TestTableQuery\testfile.csv- путь к файлу что содержит данные для импорта; D:\TestTableQuery\ - этот путь изменяеться(динамичен)) там создать новую папку с названием Import1 и в нее сохранить файл excel с именем которое будет состоять из названия файла что выбирался пользователем для импорта и слов ExcelCore, тоесть его название должно быть в данном случае testfileExcelCore, а путь сохранения D:\Import1\testfileExcelCore.xlsx ?
Код
Sub TestTableQuary4()
' Make "D" the current drive
ChDrive "D"
'смена текущего каталога на :
ChDir "D:\TestTableQuery"
' Создание нового листа
Workbooks.Add
Dim filePathCSV
filePathCSV = Application.GetOpenFilename("CSV files(*.csv),*.csv", 1, "Выбрать файл CSV", , False)
If VarType(filePathCSV) = vbBoolean Then
Exit Sub
End If
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & filePathCSV, Destination:=Range("$A$1"))
' .CommandType = 0
.Name = "testfile.csv"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
' Do not display the message about overwriting the existing file.
Application.DisplayAlerts = False
'Рабочий старый код:
' ActiveWorkbook.SaveAs FileName:="D:\TestSave\" & MyFile
' Тестовый код:
ActiveWorkbook.SaveAs FileName:="D:\TestSave\ExcelCore"
' Close the workbook by using the following.
ActiveWorkbook.Close
End Sub
Ігор Гончаренко, нету аналогичного файла и папки новой тоже нету в которой он бы был
Мой код , если я правильно понимаю ActiveWorkbook.path воспринимает как Default , а попытавшись проверить что же в ActiveWorkbook.path через MsgBox(ActiveWorkbook.path) , то вижу следующее: