Указание 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

что дает те же результаты, что и опущение


Set ConsecutiveDelimiter до True:

Range("A1").TextToColumns ,,,True,,,True,False