Удаление строк по сложному условию с посимвольным сравнением значений ячеек. - VB
Формулировка задачи:
Уважаемые эксперты, прошу помощи в решении следующей задачи:
Таблица состоит из 2 столбцов: в столце "А" - оригинал слова на английском(с кучей мусора), в "В" - перевод на руссий (тоже с кучей мусора).
Если перевод слова на русском совпадает,а оригинальные слова имеют одинаковый "корень"(общую часть) и отличаются только окончанием вида: іеr,ierst,y,ied,ily…. то оставляем строку с окончанием "y", а остальные(с окончаниями іеr,ierst,ied,ily...) - удаляем/выделяем.
Таких правил и самих окончаний довольно много, но если подскажите решение для одного варианта, я для остальных, думаю, доделаю.
Заранее благодарен, буду рад любой помощи.
Таблица состоит из 2 столбцов: в столце "А" - оригинал слова на английском(с кучей мусора), в "В" - перевод на руссий (тоже с кучей мусора).
Задача :
удалить/выделить лишние строки, соблюдая определенные правила, например:Если перевод слова на русском совпадает,а оригинальные слова имеют одинаковый "корень"(общую часть) и отличаются только окончанием вида: іеr,ierst,y,ied,ily…. то оставляем строку с окончанием "y", а остальные(с окончаниями іеr,ierst,ied,ily...) - удаляем/выделяем.
Таких правил и самих окончаний довольно много, но если подскажите решение для одного варианта, я для остальных, думаю, доделаю.
Заранее благодарен, буду рад любой помощи.
Решение задачи: «Удаление строк по сложному условию с посимвольным сравнением значений ячеек.»
textual
Листинг программы
Option Explicit ' как отделить окончание от корня Sub RootSepatatorExample() Const SuffixesPattern As String = "(iest|ing|ier|y|e)$" Dim MyDictionary Dim RegExRootSeparator As Object Dim i As Long Dim Root As String MyDictionary = Array( _ "coruscate", "сверкать", _ "coruscating", "сверкать", _ "effulge", "сверкать", _ "effulging", "сверкать", _ "artsier", "претендующий на художественность", _ "artsiest", "претендующий на художественность", _ "artsy", "претендующий на художественность", _ "art", "искусство" _ ) 'http://www.script-coding.com/WSH/RegExp.html Set RegExRootSeparator = CreateObject("VBScript.RegExp") RegExRootSeparator.Pattern = SuffixesPattern For i = LBound(MyDictionary) To UBound(MyDictionary) Step 2 Root = RegExRootSeparator.Replace(MyDictionary(i), "") Debug.Print _ MyDictionary(i + 1) & ", " & _ MyDictionary(i) & ", " & _ Root & ", " & _ Mid$(MyDictionary(i), Len(Root) + 1) Next i Erase MyDictionary Set RegExRootSeparator = Nothing End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д