Побег персонажа в VBA - PullRequest
       1

Побег персонажа в VBA

0 голосов
/ 31 октября 2018

Я видел похожие темы в интернете, но не могу найти подходящую для моей проблемы. Я сокращу свою дискуссию, так как это слишком долго для обсуждения Поэтому мне нужно объединить столбец A, столбец B и столбец C, разделенные знаком «¦». Мне нужно разделить с помощью «¦» (не нужно спрашивать, зачем мне нужно объединять ¦, а затем разделить его с помощью ¦ - это длительный процесс. Это только суть), но есть вероятность, что данные содержат «¦ ». Можно ли сначала игнорировать или избегать "the" в данных, чтобы оно не рассматривалось как разделитель? Изменение разделителя также может появиться в данных. Я делаю форму, поэтому мне нужно использовать VBA.

Например,

Column A     | Column B     | Column C     | Column D
111          | AAA          | 1A1          | 111¦AAA¦1A1
222          | BBB          | 2B2          | 222¦BBB¦2B2
333          | CC¦C         | 3C3          | 333¦CC¦C¦3C3 

Если я разделю приведенный выше пример, он будет выглядеть так, и это неправильно.

Column A     | Column B     | Column C     | Column D
111          | AAA          | 1A1          | 
222          | BBB          | 2B2          | 
333          | CC           | C            | 3C3

Ответы [ 3 ]

0 голосов
/ 31 октября 2018

Мое решение использует Get & Transform без vba (требуется последняя версия Excel или Power Query). У меня с вашими данными все получилось, оставив CC¦C в столбце B.

Получить данные из диапазона

Разделить все, используя | Разделитель

Щелкните правой кнопкой мыши по последнему столбцу -> Разделить по ¦ разделителю

Переименовать заголовки столбцов

0 голосов
/ 31 октября 2018

вы можете заменить | символом, который вы не используете, например, ^ (или с каким-либо шаблоном, например [ThisIsPipe]), а во время split() (или после) заменить обратно ^ (или введенный шаблон) на | например.

ИМХО, для [сцепления ~~> split] лучше использовать те символы, которые не отражены в листе

0 голосов
/ 31 октября 2018

Если говорить прямо, ваши данные плохо сформированы, но это life :)! Вам необходимо использовать так называемые «текстовые квалификаторы», которые позволят символу, который вы используете в качестве разделителя, появляться в текстовых элементах, которые вы хотите разделить, и не будут рассматриваться как разделитель.

Пример того, что вы ищете:

"111"|"AAA"|"1A1" "222"|"BBB"|"2B2" "333"|"CC|C"|"3C3"

Скопируйте / вставьте третью строку данных в новый лист, а затем запустите на нем мастер «Текст в столбцы» (TtCW) для текста с разделителями. На втором шаге вы увидите выпадающий «Текстовый квалификатор» с правой стороны.

Возможно, вам придется использовать VBA для объединения данных с текстовыми квалификаторами, а затем снова разделить их с помощью TtCW. Запишите макрос, чтобы увидеть, как вы можете его автоматизировать, и вы сможете включить его в свой код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...