Страницы: 1
RSS
Доработка макроса форматирующего вертикальный столбец в таблицу, с заменой данных.
 
Здраствуйте, специалистами этого форума был создан совершенно классный макрос, который я использую, но есть одна проблема

"Тогда так (привязываемся к строке с 'ID:')
Скрытый текст
Код
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Option Base 1

Sub ColumnToTable()
Dim arr()
Dim tblArr()
Dim I&, N&, J&, K&
On Error Resume Next
With Worksheets("Лист1")
 arr = .Range("A1:A" & .Cells(.Rows.Count, "A").End(xlUp).Row).Value
 ReDim tblArr(1 To UBound(arr, 1), 1 To 6)
 For I = LBound(arr, 1) To UBound(arr, 1)
   If arr(I, 1) = "ID:" Then
     N = N + 1: K = 0
     For J = I - 1 To I + 4
       K = K + 1
       tblArr(N, K) = arr(J, 1)
     Next
   End If
 Next
 .Range("C11").Resize(N, 6) = tblArr
End With
End Sub
а)
данные в этом макросе при трансформировании стоблца А в таблицу привязаны к строке содержащей "ID", но у этой строки могут быть данные как в примере выделенном зеленым цветом ячейка А8 и А20, и тогда эти блоки ячеек не попадают в таблицу, можно ли как-то предусмотреть это в макросе? Чтоб была привязка по "ID:" независимо от того есть ли любые данные или нет после "ID:" в ячейках?
Если это невозможно, то ок, тогда я использую формулы, которые мне дали ранее на этом форуме, они очень рабочие, просто хочется минимизировать, т.к. много инфомрации в обработке, если возмножно технически конечно.
б)
так же  хотела бы добавить в этот макрос следующие дополнения, которые убирают из листа все лишнее
With ActiveSheet.UsedRange.Cells

       .Replace What:="-комнатная квартира", Replacement:="", LookAt:=xlPart

       .Replace What:="₽/м²", Replacement:="", LookAt:=xlPart

       .Replace What:=" этажиз ", Replacement:="э", LookAt:=xlPart

       .Replace What:=" ", Replacement:="", LookAt:=xlPart

       .Replace What:=" ₽", Replacement:="", LookAt:=xlPart

       .Replace What:="Квартира-студия", Replacement:="студия", LookAt:=xlPart

       .Replace What:="м²", Replacement:="", LookAt:=xlPart

попробовала вставить, но не получается, и еще символы из интернета "м²" в макросе не вставляються, как и " ₽"

глобально мне надо убрать все символы, и пробелы, и сделать как в примере С11:Н11 оранжевый цвет.

я оставляю только букву "э" столбец F , т.к далее будет разбивка по столбцам по этой букве.

___________

спасибо за помощь.

 
Так? На втором листе.
Изменено: Рассеянный - 31.08.2026 06:29:41
 
Проверяйте.
Изменено: SAS888 - 31.08.2026 08:43:36
Чем шире угол зрения, тем он тупее.
 
Может лучше извлекать из текста нужное, чем удалять ненужное?
Анализ текста регулярными выражениями (RegExp) в Excel
И это тоже как-то не комильфо:
Цитата
я оставляю только букву "э" столбец F , т.к далее будет разбивка по столбцам по этой букве
Делайте все одним махом
Скрытый текст

П.С. Если бы файл-пример сразу соответствовал Правилам форума и Вы бы описали сразу всю ЗАДАЧУ, а не СПОСОБЫ, которыми пытаетесь ее решить, то глядишь и дорабатывать-бы ничего не пришлось
Цитата
2.3. Приложите файл(ы) с примером (общим весом не более 300Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе.
Изменено: Sanja - 31.08.2026 09:40:55
Согласие есть продукт при полном непротивлении сторон
 
SAS888, спасибо огромное, да все так, супер, единственно там не форматировались пробелы в столбце G  и H " " , т.к. это интернетовские пробелы, их не всегда эксель считывает,
я попробовала скопировать и вставить в текст макроса, где раздел

Do While InStr(cellValue, " ") > 0

               cellValue = Replace(cellValue, " ", " ")

               cellValue = Replace(cellValue, " ", "")

это вот строка, что я вставила, но не получилось,
получается через найти и заменить это нормально, они тогда убираются полностью,  это совсем минимум действий по сравлению со всей остальной работой, что делает макрос, главное, что отформатировались столбцы с ID  и все знаки другие выкинуты, спасибо, все получилось.
 
Sanja, спасибо большое, супер, все получилось.  ваш сайт спасает все рабочие процессы.
 
SAS888, спасибо да этот открыла все получилось.
 
Цитата
написал:
Может лучше извлекать из текста нужное, чем удалять ненужное? Анализ текста регулярными выражениями (RegExp) в Excel И это тоже как-то не комильфо:Цитатая оставляю только букву "э" столбец F , т.к далее будет разбивка по столбцам по этой букве
спасибо, я это изучу обязательно, тк мне все методы будут нужны в дальнейшем.
Цитата
написал:
П.С. Если бы файл-пример сразу соответствовал  Правилам форума  и Вы бы описали сразу всю ЗАДАЧУ, а не СПОСОБЫ, которыми пытаетесь ее решить, то глядишь и дорабатывать-бы ничего не пришлосьЦитата2.3. Приложите файл(ы) с примером (общим весом не более 300Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе.
поняла, я просто не знала насколько корректно можно все разместить.

спасибо огромное за макрос и за разбивку F на два столбца, это супер.  Но пробелы в H и G " " остаются, это интерентовские, в том примере выше который, они исчезли. В принципе я все равно буду всегда делать доп проверку через найти и заменить, так на всякий.
Изменено: lika1 - 31.08.2026 10:09:09
 
Цитата
lika1 написал: Но пробелы в H и G " " остаются
Цитата
и сделать как в примере С11:Н11 оранжевый цвет
В оранжевой строке пробелы были поэтому я их и оставил.
Будьте последовательны в своих желаниях)
См.файл
Согласие есть продукт при полном непротивлении сторон
 
Sanja, спасибо большое все получилось, Дай Бог здоровья.
Страницы: 1
Читают тему
Наверх