Удаление строк по сложному условию с посимвольным сравнением значений ячеек. - 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