У меня есть база данных, которая делает извлечение в формате .CSV, и с помощью VBA я импортирую данные в Excel, но при импорте в идентификаторах отсутствуют начальные нули.
Даже когда я открываю файл .CSV в Excel, этих нулей там нет. Это текущий код, который я использую:
sub import()
Dim File As String
MsgBox "Please select the Extract File", vbInformation
With Application.FileDialog(msoFileDialogFilePicker)
.Filters.Clear
.InitialFileName = "\\route"
.AllowMultiSelect = False
.Filters.Add "csv", "*.csv"
If .Show = -1 Then
File = .SelectedItems(1)
Else
MsgBox "Please, select the file then try again", vbExclamation
Exit Sub
End If
End With
With Worksheets("Data Paste").QueryTables.Add(Connection:= _
"TEXT;" & File _
, Destination:=Worksheets("Data Paste").Range("$A$1"))
.Name = "FileName"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileTrailingMinusNumbers = True
.TextFileColumnDataTypes = Array(xlTextFormat)
.Refresh BackgroundQuery:=False
End With
Exit Sub
Я попытался заранее изменить формат рабочего листа на ТЕКСТ, но эти нули по-прежнему отсутствуют, хотя эти данные находятся в текстовом формате.
Изменить 1: я открыл .CSV с помощью Блокнота, и там есть эти начальные нули. Но не тогда, когда я открываю его с помощью Excel
.TextFileColumnDataTypes = Array(xlTextFormat)
применит текстовый формат только к первому столбцу. Возвращает или задает упорядоченный массив констант, указывающих типы данных, применяемые к соответствующим столбцам в текстовом файле, который вы импортируете в таблицу запросов. Константа по умолчанию для каждого столбца — xlGeneral. Чтение/запись Вариант. docs.microsoft.com/en-us/office/ vba/апи/ - person Tim Williams   schedule 09.06.2021xlTextFormat
для каждого столбца, который мне нужен в текстовом формате, верно? Тогда это было глупо. Помогло, теперь нули стоят. Большое спасибо! :D - person Dark161000   schedule 09.06.2021