2

Я создал макрос, используя рекордер, чтобы добавить определенный файл .txt в мой файл Excel, используя определенную комбинацию клавиш, в определенную область открытого файла Excel. Однако у меня возникла такая проблема: когда я снова использую макрос, новые данные не переопределяют предыдущие импортированные данные в той же области, но смещаются настолько, насколько необходимо, чтобы оставить прежние данные нетронутыми.

Есть ли способ изменить это, либо с помощью параметра, либо путем изменения макроса кода? В частности, я хотел бы, чтобы макрос проверял, содержат ли записываемые ячейки данные, и очищал их содержимое перед импортом данных файла.

Код пока (результат перекодированного макроса :)

Sub testimport()
'
' testimport Macro
'

'
With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;C:\Users\egw\Desktop\ÍÝïò öÜêåëïò\Book2.txt", Destination:=Range( _
    "M14"))
    .Name = "Book2"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = 737
    .TextFileStartRow = 1
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = True
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = False
    .TextFileSpaceDelimiter = False
    .TextFileColumnDataTypes = Array(1)
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
End With
End Sub

1 ответ1

5

Изменить .RefreshStyle = xlInsertDeleteCells to .RefreshStyle = xlOverwriteCells и он заменит ячейки данными из файла. Это заставляет обновление заменить данные в вашей таблице, чтобы они соответствовали тексту в файле.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .