Поиск и замена строк по маске - VBA/Excel
Формулировка задачи:
Имеется строки с разделителем «;» в нескольких колонках файла Excel большого размера следующего содержимого:
Параметр 1 = Хx; Параметр 2 = Yx;Параметр 3 = Zx; Параметр N = Nx;
Вопрос в том, как оставить в строке, например,Параметр 2 и Параметр 3
, а остальные удалить если после знака «=» различные цифровые значения? Пробовал построчно, функциямиinstr
иSplit
- медленно получается.Решение задачи: «Поиск и замена строк по маске»
textual
Листинг программы
Sub ParamAnalize() 'задача в колонках 7 и 9 оставить только строки содержащие: PARAM7 и PARAM9 Dim I&, PARAMS As String, RET As String, k&, v(), col Dim Sh As Worksheet: Set Sh = Workbooks("Qests.xlsx").Worksheets("Лист1") ' For Each col In Array(7, 9) v = Range(Sh.Cells(2, col), Sh.Cells(Sh.Rows.Count, col).End(xlUp)).Value For I = 1 To UBound(v) PARAMS = v(I, 1): RET = "" k = InStr(1, PARAMS, "PARAM7") If k Then RET = Mid$(PARAMS, k, InStr(k + 8, PARAMS, ";") - k + 2) k = InStr(k + 10, PARAMS, "PARAM9") If k Then RET = RET & Mid$(PARAMS, k, InStr(k + 8, PARAMS, ";") - k + 2) End If End If v(I, 1) = RET Next Sh.Cells(2, col).Resize(I - 1).Value = v Next End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д