Поиск и замена строк по маске - 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

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


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

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

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