Изменение типа номера на тип текста при импорте CSV с помощью VBA - PullRequest
1 голос
/ 02 октября 2019

Я получил код импорта csv ниже

Private Sub Workbook_Open()
 Dim xFileName As Variant
    Dim Rg As Range
    Dim xAddress As String
    xFileName = Application.GetOpenFilename("CSV File (*.csv), *.csv", , , , False)
    If xFileName = False Then Exit Sub
    On Error Resume Next
    xAddress = Range("A1").Address
    With ActiveSheet.QueryTables.Add("TEXT;" & xFileName, Range(xAddress))
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 65001
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

Обычно это работает, но при импорте csv, но какой-то столбец, который начинается с 0, затем превосходит эту ячейку как число и удаляет (скрыть) все 0 начинают ячейку.

Я пытался добавить этот скрипт, но он не работает.

ActiveSheet.NumberFormat = "@"

1 Ответ

1 голос
/ 02 октября 2019

Вы пытались отформатировать поле назначения

Пример

Свойство QueryTable.TextFileColumnDataTypes

.TextFileColumnDataTypes = Array(xlTextFormat)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...