1

Когда я использую Excel для синтаксического анализа нескольких документов и мне нужно контролировать импорт (текст, а не общие, при этом параметры импорта столбцов являются наиболее заметным примером), как я могу запретить Excel автоматически запускать импорт текста в столбец Мастер для меня автоматически. Я предпочитаю запускать его вручную каждый раз, даже если я понимаю, что Excel просто пытается помочь, выполняя то, что я только что сделал.

Он просто не преобразует столбцы в текст в первую очередь.

2 ответа2

0

Вы можете изменить макет или свойства импортированных данных в любое время. В меню «Данные» выберите «Получить внешние данные» и нажмите «Редактировать импорт текста» или «Свойства диапазона данных».

Если вы выберете «Редактировать импорт текста», выберите файл, который вы импортировали изначально, а затем внесите изменения во внешние данные в мастере импорта текста.

Выбрав Свойства диапазона данных, вы можете установить определение запроса, управление обновлением и параметры макета данных для внешних данных.

0

Если вы используете версию Excel, которая не содержит "Получить внешние данные" в меню "Данные" (например, Excel 2003, которая является моей основной версией из-за непродуктивных "обновлений" Office 2007 до 2013), вы можете предотвратить "полезное" поведение, которое они навязывают вам несколькими ручными шагами или макросом (макрос быстрее и проще, поэтому я поместил его в мой personal.xls):

  • Добавить книгу (или Ctrl+N)
  • Введите букву А в ячейку A1
  • Нажмите на ячейку A1
  • Начать «Текст в столбцы» (или Alt+D, E)
  • Выберите с разделителями (или Alt+D)
  • Нажмите Enter
  • Снимите все флажки
  • Нажмите Готово (или Alt+F)
  • Закройте рабочую книгу; Не сохраняй.

Теперь "полезное" поведение будет предотвращено при повторной вставке.

В коде

' Differs from Walkenbach in that he just populated A1 if empty, did this on A1, restored A1.
' This is better IFF you are allowed to add a workbook.
Sub FixAutomaticTextToColumns()
    If ActiveSheet.ProtectContents Then MsgBox _
            "BTW, the active sheet is protected. Consider unprotecting 'ere TextToColumns"
    Workbooks.Add
    Cells(1) = "A" 'Required, else TextToColumns will error
    Cells(1).TextToColumns DataType:=xlDelimited, Tab:=False, semicolon:=False, _
                           comma:=False, Space:=False, other:=False
    ActiveWorkbook.Close False
End Sub

FWIW, я написал эту процедуру самостоятельно, а затем обнаружил, что гуру / автор / разработчик Excel Джон Уокенбах опубликовал нечто похожее на своем сайте, странице электронных таблиц, под названием Очистка параметров текста в столбцах.

См. Как добавить VBA в MS Office? для общей информации.

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