Если вы используете версию 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? для общей информации.