Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/поиск совпадений слов в тексте - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » поиск совпадений слов в тексте (Макросы Sub)
поиск совпадений слов в тексте
Akost100 Дата: Понедельник, 11.11.2013, 14:40 | Сообщение № 21
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
спасибо большое, еще такой вопрос, совпадений допустим не обнаружено - как поставить ноль в тот же столбец D, а там где обнаружены - 1, суммы при этом хотельсь бы оставить
К сообщению приложен файл: 3162048.xlsm (55.5 Kb)
 
Ответить
Сообщениеспасибо большое, еще такой вопрос, совпадений допустим не обнаружено - как поставить ноль в тот же столбец D, а там где обнаружены - 1, суммы при этом хотельсь бы оставить

Автор - Akost100
Дата добавления - 11.11.2013 в 14:40
Akost100 Дата: Вторник, 12.11.2013, 13:15 | Сообщение № 22
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
здравствуйте, макрос ниже (также есть пример в файле - в сообщении выше) хочу изменить убрав условие If InStr(x(i, 2), "~") Then, так как оно удаляет слова в фразе до слов заданных для поиска, хочется, чтобы они оставались, удаляю также End If, но все равно выдает ошибку, прошу помощи
[vba]
Код

Sub ertert22_2()
Dim x, i&, j&, r As Range, adr As String, sp: Application.ScreenUpdating = False
  Sheets("Лист1").Activate
  x = Range("C1:D" & Cells(Rows.Count, 3).End(xlUp).Row).Value
With Range("A1", Cells(Rows.Count, 1).End(xlUp))
      For i = 1 To UBound(x)
          Set r = .Find(x(i, 1))
          If Not r Is Nothing Then
              adr = r.Address
              Do
                  x(i, 2) = x(i, 2) & "~" & r
                  Set r = .FindNext(r)
              Loop While r.Address <> adr
          End If
      Next i
End With
With Sheets("Лист4")
      For i = 1 To UBound(x)
          With .Cells(Rows.Count, 1).End(xlUp)(3)
              .Value = x(i, 1)
              .Resize(, 22).Borders.Weight = xlThin
              [b]If InStr(x(i, 2), "~") Then[/b]
                  sp = Split(Mid(x(i, 2), 2), "~")
                  For j = 0 To UBound(sp)
                      sp(j) = x(i, 1) & Split(sp(j), x(i, 1))(1)
                  Next j
                  With .Cells(2).Resize(UBound(sp) + 1)
                      .Value = Application.Transpose(sp)
                      .Resize(UBound(sp) + 2, 22).Borders.LineStyle = xlContinuous
                      .Resize(UBound(sp) + 2, 22).Borders.Item(xlInsideHorizontal).LineStyle = xlLineStyleNone
                  End With
                  .Item(1, 4).FormulaR1C1 = "=SUM(R[1]C:R[" & UBound(sp) + 1 & "]C)"
              End If
          End With
      Next i
      .Activate
End With: Application.ScreenUpdating = True
End Sub
[/vba]
 
Ответить
Сообщениездравствуйте, макрос ниже (также есть пример в файле - в сообщении выше) хочу изменить убрав условие If InStr(x(i, 2), "~") Then, так как оно удаляет слова в фразе до слов заданных для поиска, хочется, чтобы они оставались, удаляю также End If, но все равно выдает ошибку, прошу помощи
[vba]
Код

Sub ertert22_2()
Dim x, i&, j&, r As Range, adr As String, sp: Application.ScreenUpdating = False
  Sheets("Лист1").Activate
  x = Range("C1:D" & Cells(Rows.Count, 3).End(xlUp).Row).Value
With Range("A1", Cells(Rows.Count, 1).End(xlUp))
      For i = 1 To UBound(x)
          Set r = .Find(x(i, 1))
          If Not r Is Nothing Then
              adr = r.Address
              Do
                  x(i, 2) = x(i, 2) & "~" & r
                  Set r = .FindNext(r)
              Loop While r.Address <> adr
          End If
      Next i
End With
With Sheets("Лист4")
      For i = 1 To UBound(x)
          With .Cells(Rows.Count, 1).End(xlUp)(3)
              .Value = x(i, 1)
              .Resize(, 22).Borders.Weight = xlThin
              [b]If InStr(x(i, 2), "~") Then[/b]
                  sp = Split(Mid(x(i, 2), 2), "~")
                  For j = 0 To UBound(sp)
                      sp(j) = x(i, 1) & Split(sp(j), x(i, 1))(1)
                  Next j
                  With .Cells(2).Resize(UBound(sp) + 1)
                      .Value = Application.Transpose(sp)
                      .Resize(UBound(sp) + 2, 22).Borders.LineStyle = xlContinuous
                      .Resize(UBound(sp) + 2, 22).Borders.Item(xlInsideHorizontal).LineStyle = xlLineStyleNone
                  End With
                  .Item(1, 4).FormulaR1C1 = "=SUM(R[1]C:R[" & UBound(sp) + 1 & "]C)"
              End If
          End With
      Next i
      .Activate
End With: Application.ScreenUpdating = True
End Sub
[/vba]

Автор - Akost100
Дата добавления - 12.11.2013 в 13:15
Мир MS Excel » Вопросы и решения » Вопросы по VBA » поиск совпадений слов в тексте (Макросы Sub)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!