Указание Excel VBA TextToColumns не разбивать на пробелы
я использую VBA в Excel 2003. Вот самый простой пример проблемы, с которой я сталкиваюсь. Я хочу разделить строку запятая только в ячейки в строке.
в ячейке A1 у меня есть следующая строка:
A B,C
в VBA, если я скажу Range("A1").TextToColumns Comma:=True,Space:=False
, он делает то, что я ожидаю. Ячейка A1 A B
и ячейка B1 C
а если у меня есть эта строка:
A B C,D
тогда, если я использую Range("A1").TextToColumns Comma:=True,Space:=False
, она распадается на помещения в любом случае! Ячейка A1 A
ячейка B1 B
, ячейка C1 является C,D
(?!)
почему TextToColumns
автоматическое разделение на пробелы, когда есть более одного пространства, даже когда я явно рассказать не? Это известная ошибка?
Есть ли обходной путь, кроме ручного синтаксического анализа строк в столбцы самостоятельно?
2 ответов
если вы хотите явно задать DataType
to xlDelimited
, else Excel предполагает, что данные расположены в Столбцах фиксированной ширины, и первоначальное предположение Excel о том, насколько широки эти столбцы, где пробелы-игнорируя любые разделители, которые вы выбираете в списке аргументов.
попробуйте следующее, И вы увидите, что он воспроизводит ваши результаты:
Range("A1").TextToColumns DataType:=xlFixedWidth
что дает те же результаты, что и опущение