Объединение текста в ячейках Excel, содержащих списки - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый день! Подскажите как решить задачку: Есть таблица excel, которая содержит на листе столбец текст. Текст этот был получен в результате тупого копирования кучи различных документов (всё печально ) из word в excel. (количество записей под 200 тысяч). В тексте присутствуют различные списки, которые разбиты по ячейкам excel, как пример:
Входная информация может содержать следующие параметры, в зависимости от их применимости:
a)********** Базовая входная информация:
—* функция установки, конструкций, систем или элементов;
—* требования к местоположению и взаимодействиям;
—* учет результатов предыдущих разработок.
b)********* Производная входная информация (зависящая от концептуального проекта):
—* проектные требования, относящиеся к специфическим дисциплинам, в том числе:
●** аспекты, связанные с ;
●** металлургические и материаловедческие аспекты: защитные покрытия, сварные швы; истирание, изнашивание, эрозия и ползучесть;
—* требования к обслуживанию, включая надежность, резервирование;
—* требования к выводу из эксплуатации, в том числе демонтаж и дезактивация.
В общем цель заключается в объединении подобных списков в одной (первой) ячейке excel и удалении текста из ячеек, текст которых включен в ячейку. Очень путано объяснила на словах Понятней всё выглядит в приложении к сообщению Задача кривая, но сроки горят и её нужно как-то решать Готова выдать небольшое материальное вознаграждение.

Решение задачи: «Объединение текста в ячейках Excel, содержащих списки»

textual
Листинг программы
Sub Macros()
Dim i As Long, j As Long, f_sym As String
j = 1
For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
    f_sym = Asc(Left(LTrim(Range("B" & i)), 1))
    If (f_sym > 47 And f_sym < 58) Or (f_sym > 191 And f_sym < 224) Then
        j = j + 1
        Sheets("Результат").Range("B" & j) = LTrim(Range("B" & i))
    Else
        Sheets("Результат").Range("B" & j) = Sheets("Результат").Range("B" & j) & Chr(10) & LTrim(Range("B" & i))
    End If
    
Next i
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5
Похожие ответы