I marked it as solved just few days ago. My problem of more than 900 find and replacement not get solved. I solved nearabout 20-30 find and replace commands. I recorded the macro then used mail merge and with the help of mail merge I put those more than 900 find and replace texts. When I tried to find and replace with your solution my PC gets hanged. So I leave that problem and now I just want that the find and replace should work in tables and in calc.
Kruti Dev Find and Replace with Special Character.odt (23.7 KB)
Hallo
Its pretty simple with python
import re
rex = re.compile(r"yka|k")
def repl(match):
if match.group() == "yka":
return "लां"
else:
return "ष"
def replace_in_selections(*_):
doc = XSCRIPTCONTEXT.getDocument()
selections = doc.CurrentSelection
for selection in selections:
selection.String = rex.sub(repl, selection.String)
To organize and run python, you should install apso.oxt from here
@karolus Yes, you’re right, this approach is better than JeJe’s idea - why search for all available occurrences of the search string in the entire document, if we can just replace the strings in the selections? This works much faster:
Sub ReplaceInSelection
Dim OriginalStrings As Variant, TargetStrings As Variant
Dim oSelections As Variant, sText As String
Dim i As Long, k As Long
OriginalStrings = Array("yka", "k")
TargetStrings = Array("लां", "ष")
oSelections =ThisComponent.getCurrentSelection()
For k = 0 To oSelections.getCount()-1
sText = oSelections.getByIndex(k).getString()
For i = LBound(OriginalStrings) To UBound(OriginalStrings)
sText = Replace(sText,OriginalStrings(i),TargetStrings(i),1,-1,0)
Next i
oSelections.getByIndex(k).setString(sText)
Next k
End Sub
If you want to replace only the simple characters and you don’t need the regular expressions for finding, then it is possible to search the regular expression from searched characters and replace the found parts. The advantage is, it will keep up the formatting; and it can be faster than searching the selection again and again for every item in array.
I haven’t installed the fonts for your example yka, so the example for replacing is: bc → @1; op → #:. So the macro searches the (bc|op) and then replaces the found part bc or op.
I don’t know how large document you need to search, so I put there also the lockControllers (it could be faster), and Undo Manager for only one step in Undo (it could be more comfortable for mistake in replacing).
Edit the variable p() to your replacements.
find-repl-in-selection.odt (15.0 kB)
This isn’t quite correct. An inserted replacement always gets the attributes from the next position left of its start. If the finding getting replaced is not inside of an uniformly formatted text range there will be a change.
See attachment-in-return:
find_repl_in_selection_ReExcept.odt (16.6 KB)
To avoid his, you should firszt insert the replacement behind the finding, and annullated the found part subsequently. If the search string isn’t formatted uniformly at all, there isn’t an unambiguos requirement concerning the attributes to use for the replacement anyway.
I forgot this behavior :-).
Here is the fix, of course it supposes only one formatting for wanted items.
find_repl_in_selection_ReExcept-3.odt (17.0 kB)
I tried to make the multiformat F&R in past, but I still didn’t finish it.
Thanks a lot
My PC hangs if I put hundreds of items in the array.
My expected answer was given here but I think was deleted afterwards. I found the answer in the email. And with the help of that answer I managed to solve the problem. The code that worked was given below and I think it was suggested by @JohnSUN
REM ***** BASIC *****
Sub ReplaceInSelection
Dim OriginalStrings As Variant, TargetStrings As Variant
Dim oFind As Variant, oFound As Variant
Dim oSelections As Variant, oCompare As Variant
Dim i As Long, j As Long, k As Long
OriginalStrings = Array("d%", "[k%", "x%", "?k%", "p%", "N%", "t%", ">%", "¥%", "V%", "B%", "M%", "<%", ".k%", "r%", "Fk%", "n%", "/k%", "u%", "i%", _
"Q%", "c%", "Hk%", "e%", ";%", "j%", "y%", "o%", "‘k%", "l%", "g%", "G%", "{k%", "K%", _
"‘k", "‘kk", "‘kh", "f’k", "‘kq", "‘kw", "‘ks", "‘kS", "‘ka", "‘", _
"“k", "“kk", "“kh", "f”k", "“kq", "“kw", "“ks", "“kS", "“ka", "“", _
"Jk", " =kk", "fX", "f?", "f>", "f{", "fD", "fF", "fH", "fL", "fR", "/;k", "f'", "f\CHR$(34)+", "f[", "f.", "f/", "f=", "f}", _
"fE", "fT", "fY", "fU", "fI", "fO", "fP", "fC", "UlZ", "Ul", "ElZ", "El", "OgZ", "Og", "OgsZ", "?;Z", "?;", "?;kZ", "?;k", "P;Z", _
"P;", "P;kZ", "P;k", "D;Z", "D;", "D;kZ", "D;k", "E;Z", "E;", "E;kZ", "E;k", "YlZ", "Yl", "/;Z", "/;", "/;kZ", "/;k", "R;Z", "R;", _
"R;kZ", "R;k", "Q~;Z", "Q~;", "Q~", "Q~;kZ", "Q~;k", "F;kZ", "F;Z", "F;", "F;k", "OghZ", "Ogh", "T;Z", "T;kZ", "T;", "T;k", "Y;Z", "Y;kZ", "Y;", _
"Y;k", "U;Z", "U;kZ", "U;", "U;k", "I;Z", "I;kZ", "I;", "I;k", "O;Z", "O;kZ", "O;", "O;k", "\CHR$(34)+;Z", "\CHR$(34)+;kZ", "\CHR$(34)+;", "\CHR$(34)+;k", "L;Z", "L;kZ", "L;", _
"L;k", "H;Z", "H;kZ", "H;", "H;k", "X;Z", "X;kZ", "X;", "X;k", "C;Z", "C;kZ", "C;", "C;k", "[;Z", "[;kZ", "[;", "[;k", "jkZ", "Dr", "Drh", _
"Drha", ">ks", "vW", "fLo", "LF", "LFk", "LFkk", "LFkkZ", _
"ç", "ê", "ë", "ì", "í", "ï", "ð", "ô", "ù", "Ÿ", "˜", "–", "—", "„", "‡", "‰", "™", _
"Á", "Å", "Ì", "Í", "Î", "Ï", "Ñ", "Ô", "Ø", "Ù", "Ú", "Ý", "á", "â", "ã", "ä", "é", "æ", "ô", "ù", _
"fDr", "f[kz", "fxz", "f?k", "f?kz", "ftz", ">kks", ">kkS", "f>k", ">kh", "fVz", "fMz", _
"fR;", "fFkz", "FksZ", "fnz", "/kkh", "f/kz", "fuz", "fiz", "fQz", "D;Z", "D;kZ", _
"[kZ", "[kkZ", "f[kZ", "[khZ", "[ksZ", "[kSZ", "[kksZ", "[kkSZ", "fxZ", "X;Z", "X;kZ", "?kZ", "?kkZ", "f?kZ", "?khZ", "?ksZ", "?kSZ", "?kksZ", "?kkSZ", "?;Z", _
"?;kZ", "fpZ", "P;Z", "P;kZ", "fNZ", "ftZ", "T;Z", "T;kZ", ">kZ", ">kkZ", ">kksZ", ">kkSZ", "f>kZ", ">khZ", ">ksZ", ">kSZ", "fVZ", "fMZ", ".kZ", ".kkZ", _
".khZ", ".ksZ", ".kSZ", ".kksZ", ".kkSZ", "frZ", "FkkZ", "fFkZ", "FkSZ", "FkksZ", "FkkSZ", "F;Z", "fnZ", "/kZ", "/kkZ", "/kksZ", "f/kZ", "/khZ", "/ksZ", "/kSZ", _
"/kkSZ", "fuZ", "U;Z", "U;kZ", "UlZ", "fiZ", "I;Z", "I;kZ", "fQZ", "Q~;Z", "Q~;kZ", "C;Z", "C;kZ", "HkZ", "HkkZ", "HksZ", "HkSZ", "HkksZ", "HkkSZ", "H;Z", _
"H;kZ", "E;Z", "E;kZ", "ElZ", "fyZ", "Y;Z", "Y;kZ", "YlZ", "foZ", "O;Z", "O;kZ", "OgZ", "OghZ", "OgsZ", "'kZ", "'kkZ", "f'kZ", "'khZ", "'ksZ", "'kSZ", _
"'kksZ", "'kkSZ", "”kZ", "”kkZ", "f”kZ", "”khZ", "flZ", "fgZ", "fY", "fO", "foz", "f'", "fL", "fLr", "fLFk", _
"yka", "”k", "”ka", "”kk", "”kkW", "”kkS", "”kks", "”kh", "”kq", "”kw", "”kW", "”ks", "”kS", "”kkZ", "”kZ", "f”kZ", "”khZ", "”k", "”", "FkhZ", _
"f.kZ", "F;kZ", "FkZ", CHR$(34)+"kkZ", "?k", "?", CHR$(34)+"khZ", CHR$(34)+"k", CHR$(34), "f.k", ".k", ".", "f?k", "f>", "fFk", "f/k", "fHk", "f'k", "f{k", "f[k", _
"?k", "?ka", "?k%", "?kq", "?kw", "?kW", "'k", "'ka", "'k%", "'kq", "'kw", "'kW", "[k", "[ka", "[kkW", "[kW", "[k%", "[kq", "[kw", "{k", _
"{ka", "{k%", "{kh", "{kq", "{kw", "{kW", "{ks", "{kS", "/k", "/ka", "/k%", "/kq", "/kw", "/kW", "Fk", "Fka", "FkkW", "Fk%", "Fkq", "Fkw", _
"FkW", "Hk", "HkW", "Hka", "Hk%", "Hkq", "Hkw", ">", "X", "U", "T", "R", "P", "O", "L", "I", "H", "F", "E", "D", _
"C", "Y", "yZ", "ysZ", "ySZ", "ys", "yS", "YlZ", "Yl", "ykZ", "ykW", "yksZ", "ykSZ", "ykS", "yks", "yk", "yhZ", "yh", "Y;Z", "Y;kZ", _
"Y;k", "Y;", "xzks", "xzkS", "xzk", "xZ", "xz", "xsZ", "xSZ", "xs", "xS", "xs", "xkZ", "xkW", "xkSZ", "xksZ", "xks", "xkS", "xk", "xhZ", _
"xh", "X;Z", "X;kZ", "X;k", "X;", "Vzks", "VzkS", "Vzk", "VZ", "Vz", "VsZ", "VSZ", "Vs", "VS", "VkZ", "vkW", "VkW", "VksZ", "VkSZ", "vks", _
"vkS", "Vks", "VkS", "vk", "Vk", "VhZ", "Vh", "uzks", "uzkS", "uZ", "uz", "usZ", "uSZ", "us", "uS", "UlZ", "Ul", "ukZ", "ukW", "uksZ", _
"ukSZ", "ukS", "uks", "uk", "uhZ", "uh", "U;Z", "U;kZ", "U;k", "U;", "tzks", "tzkS", "tZ", "tz", "tsZ", "tSZ", "ts", "tS", "tkZ", "tkW", _
"tksZ", "tkSZ", "tkS", "tks", "tk", "thZ", "th", "T;Z", "T;kZ", "T;k", "T;", "rZ", "rsZ", "rSZ", "rs", "rS", "rkZ", "rkW", "rksZ", "rkSZ", _
"rkS", "rks", "rk", "rhZ", "rh", "R;Z", "R;w", "R;s", "R;S", "R;q", "R;kZ", "R;ks", "R;kS", "R;k", "R;k", "R;h", "R;a", "R;%", "R;", "R;", _
"Qzks", "QzkS", "Qzk", "QZ", "Qz", "QsZ", "QSZ", "Qs", "QS", "QkZ", "QksZ", "QkSZ", "QkS", "Qks", "Qk", "QhZ", "Qh", "Q~", "Q~;Z", "Q~;kZ", _
"Q~;k", "Q~;", "pzks", "pzkS", "pZ", "pZ", "pZ", "psZ", "pSZ", "ps", "pS", "pkZ", "pkW", "pksZ", "pkSZ", "pks", "pkS", "pk", "phZ", "ph", _
"P;Z", "P;kZ", "P;k", "P;", "ozw", "ozq", "ozks", "ozkS", "ozk", "oZ", "oz", "osZ", "oSZ", "os", "oS", "okZ", "okW", "oksZ", "okSZ", "okS", _
"oks", "ok", "ohZ", "oh", "OgZ", "OgsZ", "OghZ", "Ogh", "Og", "O;Z", "O;kZ", "O;k", "O;", "nzks", "nzkS", "Nzks", "Nzks", "NzkS", "nzk", "nZ", _
"NZ", "nz", "NSZ", "NsZ", "nsZ", "nSZ", "Ns", "NS", "ns", "nS", "NkZ", "nkZ", "nkW", "NksZ", "NkSZ", "NksZ", "nksZ", "nkSZ", "Nks", "NkS", _
"nks", "nkS", "Nk", "nk", "NhZ", "nhZ", "Nh", "nh", "Mzks", "MzkS", "Mzk", "MZ", "Mz", "MsZ", "MSZ", "Ms", "MS", "mq", "MkZ", "MkW", _
"MksZ", "MkSZ", "Mks", "MkS", "Mk", "MhZ", "Mh", "lzks", "lzkS", "lZ", "lsZ", "lSZ", "ls", "lS", "lkZ", "lkW", "lksZ", "lkSZ", "lks", "lkS", _
"lk", "lhZ", "lh", "L;Z", "L;kZ", "L;k", "L;", "KZ", "Kks", "KkS", "Kk", "jkZ", "jkW", "jks", "jkS", "Jks", "JkS", "jk", "Jk", "izks", _
"izkS", "izk", "iZ", "iz", "isZ", "iSZ", "is", "iS", "ikZ", "ikW", "iksZ", "ikSZ", "ikS", "iks", "ik", "ihZ", "ih", "I;Z", "I;kZ", "I;k", _
"I;", "Hkzks", "HkzkS", "Hkzk", "HkZ", "Hkz", "HkW", "HksZ", "HkSZ", "Hks", "HkS", "HkkZ", "HkksZ", "HkkSZ", "Hkks", "HkkS", "Hkk", "HkhZ", "Hkh", "H;Z", _
"H;kZ", "H;k", "H;", "gZ", "gsZ", "gSZ", "gs", "gS", "gkZ", "gkW", "gkW", "gksZ", "gkSZ", "gkS", "gks", "Gks", "GkS", "gk", "Gk", "ghZ", _
"gh", "fyZ", "fy", "fY", "fxz", "fxZ", "fx", "fX", "fVz", "fVZ", "fV", "fuZ", "fuz", "fu", "fU", "ftz", "ftZ", "ft", "fT", "frZ", _
"fr", "fR", "fR;", "fQZ", "fQz", "fQ", "fpZ", "fpz", "fp", "fP", "foZ", "foz", "fo", "fO", "fNZ", "fnZ", "fnz", "fN", "fn", "fMz", _
"fMZ", "fM", "flZ", "flz", "fLr", "fLFk", "fl", "fL", "Fkzks", "FkzkS", "Fkzk", "FkZ", "Fkz", "FksZ", "FkSZ", "Fks", "FkS", "FkkZ", "FkkW", "FkksZ", _
"FkkSZ", "Fkks", "FkkS", "Fkk", "FkhZ", "Fkh", "fK", "fj", "fJ", "fiZ", "fiz", "fi", "fI", "fHkZ", "fHkz", "fHk", "fH", "fgZ", "fGk", "fg", _
"fG", "fFkz", "fFkZ", "fFk", "fF", "feZ", "fez", "fe", "fE", "fdz", "fdZ", "fDr", "fd", "fD", "fcZ", "fcz", "fc", "fC", "fBz", "fBZ", _
"fB", "f>kZ", "f>k", "f>", "f=k", "f=", "f<z", "f<Z", "f<", "f/kZ", "f/kz", "f/k", "f/", "f}", "f{k", "f{", "f[kz", "f[kZ", "f[k", "f[", _
"f'p", "f'kZ", "f'k", "f'", "f.kZ", "f.kz", "f.k", "f?kz", "f?kZ", "f?k", "f?", "f;Z", "f;z", "F;Z", "F;kZ", "F;k", "f;", "F;", "ezw", _
"ezs", "ezS", "ezq", "ezks", "ezkS", "ezk", "ezh", "eza", "ez%", "eZ", "ez", "esZ", "eSZ", "es", "eS", "ElZ", "El", "ekZ", "ekW", "eksZ", _
"ekSZ", "ekS", "eks", "ek", "ehZ", "eh", "E;Z", "E;kZ", "E;k", "E;", "dzks", "dzkS", "dzk", "dZ", "dz", "dsZ", "dSZ", "ds", "dS", "dkZ", _
"dkW", "dksZ", "dkSZ", "dkS", "dks", "dk", "dk", "dhZ", "dh", "D;Z", "D;kZ", "D;k", "D;", "czks", "czkS", "czk", "cZ", "cz", "csZ", "cSZ", _
"cs", "cS", "ckZ", "ckW", "cksZ", "ckSZ", "cks", "ckS", "ck", "chZ", "ch", "C;Z", "C;kZ", "C;k", "C;", "Bzks", "BzkS", "BZ", "bZ", "Bz", _
"BsZ", "BSZ", "Bs", "Bs", "BS", "BkZ", "BksZ", "BkSZ", "Bks", "BkS", "Bk", "BhZ", "Bh", "|k", ">kZ", ">ksZ", ">kSZ", ">ks", ">kS", ">kkZ", _
">kksZ", ">kkSZ", ">kks", ">kkS", ">khZ", ">kh", ">k", "=ks", "=kks", "=kkS", "=kk", "=k", "<zks", "<zkS", "<Z", "<z", "<sZ", "<SZ", "<s", "<S", _
"<s", "<S", "<kZ", "<ksZ", "<kSZ", "<ks", "<kS", "<k", "<hZ", "<h", "<h", "/kzks", "/kzkS", "/kzk", "/kZ", "/kz", "/ksZ", "/kSZ", "/ks", "/kS", _
"/kkZ", "/kksZ", "/kkSZ", "/kks", "/kkS", "/kkh", "/kk", "/khZ", "/khZ", "/kh", "/;Z", "/;kZ", "/;k", "/;k", "/;", "{kks", "{kkS", "{kk", "[kzs", "[kzs", _
"[kzks", "[kzkS", "[kzk", "[kZ", "[kz", "[kW", "[ksZ", "[kSZ", "[ks", "[kS", "[kkZ", "[kksZ", "[kkSZ", "[kkS", "[kks", "[kk", "[khZ", "[kh", "[;Z", "[;kZ", _
"[;k", "[;", "'kZ", "'ksZ", "'kSZ", "'ks", "'kS", "'kkZ", "'kksZ", "'kkSZ", "'kks", "'kkS", "'kk", "'khZ", "'kh", ".kzks", ".kzkS", ".kZ", ".ksZ", ".ksZ", _
".kSZ", ".ks", ".kS", ".kkZ", ".kksZ", ".kkSZ", ".kks", ".kkS", ".kk", ".khZ", ".khZ", ".kh", "?kzks", "?kzkS", "?kzk", "?kZ", "?kz", "?ksZ", "?kSZ", "?ks", _
"?kS", "?kkZ", "?kksZ", "?kkSZ", "?kks", "?kkS", "?kk", "?khZ", "?kh", "?;Z", "?;kZ", "?;k", "?;", ";zks", ";zkS", ";Z", ";sZ", ";SZ", ";s", ";S", _
";kZ", ";ksZ", ";kSZ", ";ks", ";kS", ";k", ";hZ", ";h", ",s", "Z", "z", "y", "x", "W", "w", "V", "v", "u", "t", "S", _
"s", "r", "Q", "q", "p", "o", "N", "n", "M", "m", "l", "K", "k", "J", "j", "i", "Hk", "h", "G", "g", _
"Fk", "f", "e", "d", "c", "B", "b", "A", "a", "$", "~", ">k", "^", "`", "&", "\\", "/k", "*", "{k", ",", _
"[k", "", "'k", ".k", "?k", "!", "9", "8", "7", "6", "5", "4", "3", "2", "1", "0", "|", "=", "<", "+", _
"}", "-", "%", ";", "]", "(", ")", "#", "_", "½", "¼", "/", "@", ":")
TargetStrings = Array("कः", "खः", "गः", "घः", "चः", "छः", "जः", "झः", "ञः", "टः", "ठः", "डः", "ढः", "णः", "तः", "थः", "दः", "धः", "नः", "पः", _
"फः", "बः", "भः", "मः", "यः", "रः", "लः", "वः", "शः", "सः", "हः", "ळः", "क्षः", "ज्ञः", _
"श", "शा", "शी", "शि", "शु", "शू", "शे ", "शै", "शं", "श्", _
"ष", "षा", "षी", "षि", "षु", "षू", "षे ", "षै", "षं", "ष्", _
"श्रा", "त्रा", "ग्ि", "घ्ि", "झि", "क्ष्ि", "क्ि", "थ्ि", "भ्ि", "स्ि", "त्ि", "ध्या", "श्ि", "ष्ि", "ख्ि", "ण्ि", "ध्ि", "त्रि", "द्वि", "म्ि", _
"ज्ि", "ल्ि", "न्ि", "प्ि", "व्ि", "च्ि", "ब्ि", "र्न्स", "न्स", "र्म्स", "म्स", "र्व्ह", "व्ह", "र्व्हे", "र्घ्य", "घ्य", "र्घ्या", "घ्या", "र्च्य", "च्य", _
"र्च्या", "च्या", "र्क्य", "क्य", "र्क्या", "क्या", "र्म्य", "म्य", "र्म्या", "म्या", "र्ल्स", "ल्स", "र्ध्य", "ध्य", "र्ध्या", "ध्या", "र्त्य", "त्य", "र्त्या", "त्या", _
"र्फ्य", "फ्य", "फ्", "र्फ्या", "फ्या", "र्थ्या", "र्थ्य", "थ्य", "थ्या", "र्व्ही", "व्ही", "र्ज्य", "र्ज्या", "ज्य", "ज्या", "र्ल्य", "र्ल्या", "ल्य", "ल्या", "र्न्य", _
"र्न्या", "न्य", "न्या", "र्प्य", "र्प्या", "प्य", "प्या", "र्व्य", "र्व्या", "व्य", "व्या", "र्ष्य", "र्ष्या", "ष्य", "ष्या", "र्स्य", "र्स्या", "स्य", "स्या", "र्भ्य", _
"र्भ्या", "भ्य", "भ्या", "र्ग्य", "र्ग्या", "ग्य", "ग्या", "र्ब्य", "र्ब्या", "ब्य", "ब्या", "र्ख्य", "र्ख्या", "ख्य", "ख्या", "र्रा", "क्त", "क्ती", "क्तीं", "झाे", _
"ॲ", "स्वि", "स्थ्", "स्थ", "स्था", "र्स्था", _
"प्र", "ट्ट", "ट्ठ", "ड्ड", "द्द", "ड्ढ", "ठ्ठ", "क्क", "द्म", "त्त्", "द्भ", "दृ", "कृ", "ह्म", "ह्व", "क्त", "न्न", _
"प्र", "ऊ", "द्द", "ट्ट", "ट्ठ", "ड्ड", "कृ", "ड्ढ", "क्र", "त्त", "ऱ्", "फ्र", "ह्य", "हृ", "ह्म", "क्त", "न्न", "द्र", "क्क", "द्म", _
"क्ति", "ख्रि", "ग्रि", "घि", "घ्रि", "ज्रि", "झाे", "झाै", "झि", "झी", "ट्रि", "ड्रि", _
"त्यि", "थ्रि", "थ्रे", "द्रि", "धी", "ध्रि", "न्रि", "प्रि", "फ्रि", "र्क्य", "र्क्या", _
"र्ख", "र्खा", "र्खि", "र्खी", "र्खे", "र्खै", "र्खो", "र्खो", "र्गि", "र्ग्य", "र्ग्या", "र्घ", "र्घा", "र्घि", "र्घी", "र्घे", "र्घै", "र्घो", "र्घौ", "र्घ्य", _
"र्घ्या", "र्चि", "र्च्य", "र्च्या", "र्छि", "र्जि", "र्ज्य", "र्ज्या", "र्झ", "र्झा", "र्झाे", "र्झाै", "र्झि", "र्झी", "र्झे", "र्झै", "र्टि", "र्डि", "र्ण", "र्णा", _
"र्णी", "र्णे", "र्णै", "र्णो", "र्णौ", "र्ति", "र्था", "र्थि", "र्थै", "र्थो", "र्थौ", "र्थ्य", "र्दि", "र्ध", "र्धा", "र्धाे", "र्धि", "र्धी", "र्धे", "र्धै", _
"र्धो", "र्नि", "र्न्य", "र्न्या", "र्न्स", "र्पि", "र्प्य", "र्प्या", "र्फि", "र्फ्य", "र्फ्या", "र्ब्य", "र्ब्या", "र्भ", "र्भा", "र्भे", "र्भै", "र्भो", "र्भौ", "र्भ्य", _
"र्भ्या", "र्म्य", "र्म्या", "र्म्स", "र्लि", "र्ल्य", "र्ल्या", "र्ल्स", "र्वि", "र्व्य", "र्व्या", "र्व्ह", "र्व्ही", "र्व्हे", "र्श", "र्शा", "र्शि", "र्शी", "र्शे", "र्शै", _
"र्शो", "र्शौ", "र्ष", "र्षा", "र्षि", "र्षी", "र्सि", "र्हि", "लि्", "वि्", "व्रि", "शि्", "सि्", "स्ति", "स्थि", _
"लां", "ष", "षं", "षा", "षाॅ", "षौ", "षो", "षी", "षु", "षू", "षॅ", "षे", "षै", "र्षा", "र्ष", "र्षि", "र्षी", "ष", "ष्", "र्थी", _
"र्णि", "र्थ्या", "र्थ", "र्षा", "घ", "घ्", "र्षी", "ष", "ष्", "णि", "ण", "ण्", "घि", "झि", "थि", "धि", "भि", "शि", "क्षि", "खि", _
"घ", "घं", "घः ", "घु", "घू", "घॅ", "श", "शं", "श:", "शु", "शू", "शॅ", "ख", "खं", "खाॅ", "खॅ", "ख:", "खु", "खू", "क्ष", _
"क्षं", "क्ष:", "क्षी", "क्षु", "क्षू", "क्षॅ", "क्षे", "क्षै", "ध", "धं", "ध:", "धु", "धू", "धॅ", "थ", "थं", "थॉ", "थ:", "थु", "थू", _
"थॅ", "भ", "भॅ", "भं", "भ:", "भु", "भू", "झ", "ग्", "न्", "ज्", "त्", "च्", "व्", "स्", "प्", "भ्", "थ्", "म्", "क्", _
"ब्", "ल्", "र्ल", "र्ले", "र्लै", "ले", "लै", "र्ल्स", "ल्स", "र्ला", "लॉ", "र्लो", "र्लौ", "लौ", "लो", "ला", "र्ली", "ली", "र्ल्य", "र्ल्या", _
"ल्या", "ल्य", "ग्रो", "ग्रौ", "ग्रा", "र्ग", "ग्र", "र्गे", "र्गै", "गे", "गै", "गे", "र्गा", "गॉ", "र्गौ", "र्गो", "गो", "गौ", "गा", "र्गी", _
"गी", "र्ग्य", "र्ग्या", "ग्या", "ग्य", "ट्रो", "ट्रौ", "ट्रा", "र्ट", "ट्र", "र्टे", "र्टै", "टे", "टै", "र्टा", "ऑ", "टॉ", "र्टो", "र्टौ", "ओ", _
"औ", "टो", "टौ", "आ", "टा", "र्टी", "टी", "न्रो", "न्रौ", "र्न", "न्र", "र्ने", "र्नै", "ने", "नै", "र्न्स", "न्स", "र्ना", "नॉ", "र्नो", _
"र्नौ", "नौ", "नो", "ना", "र्नी", "नी", "र्न्य", "र्न्या", "न्या", "न्य", "ज्रो", "ज्रौ", "र्ज", "ज्र", "र्जे", "र्जै", "जे", "जै", "र्जा", "जॉ", _
"र्जो", "र्जौ", "जौ", "जो", "जा", "र्जी", "जी", "र्ज्य", "र्ज्या", "ज्या", "ज्य", "र्त", "र्ते", "र्तै", "ते", "तै", "र्ता", "तॉ", "र्तो", "र्तौ", _
"तौ", "तो", "ता", "र्ती", "ती", "र्त्य", "त्यू", "त्ये", "त्यै", "त्यु", "र्त्या", "त्यो", "त्यौ", "त्या", "त्या", "त्यी", "त्यं", "त्यः", "त्य", "त्य", _
"फ्रो", "फ्रौ", "फ्रा", "र्फ", "फ्र", "र्फे", "र्फै", "फे", "फै", "र्फा", "र्फो", "र्फौ", "फौ", "फो", "फा", "र्फी", "फी", "फ्", "र्फ्य", "र्फ्या", _
"फ्या", "फ्य", "च्रो", "च्रौ", "र्च", "र्च", "र्च", "र्चे", "र्चै", "चे", "चै", "र्चा", "चॉ", "र्चो", "र्चौ", "चो", "चौ", "चा", "र्ची", "ची", _
"र्च्य", "र्च्या", "च्या", "च्य", "व्रू", "व्रु", "व्रो", "व्रौ", "व्रा", "र्व", "व्र", "र्वे", "र्वै", "वे", "वै", "र्वा", "वॉ", "र्वो", "र्वौ", "वौ", _
"वो", "वा", "र्वी", "वी", "र्व्ह", "र्व्हे", "र्व्ही", "व्ही", "व्ह", "र्व्य", "र्व्या", "व्या", "व्य", "द्रो", "द्रौ", "छ्रो", "छ्रो", "छ्रौ", "द्रा", "र्द", _
"र्छ", "द्र", "र्छै", "र्छे", "र्दे", "र्दै", "छे", "छै", "दे", "दै", "र्छा", "र्दा", "दॉ", "र्छो", "र्छौ", "र्छो", "र्दो", "र्दौ", "छो", "छौ", _
"दो", "दौ", "छा", "दा", "र्छी", "र्दी", "छी", "दी", "ड्रो", "ड्रौ", "ड्रा", "र्ड", "ड्र", "र्डे", "र्डै", "डे", "डै", "ऊ", "र्डा", "डॉ", _
"र्डो", "र्डौ", "डो", "डौ", "डा", "र्डी", "डी", "स्रो", "स्रौ", "र्स", "र्से", "र्सै", "से", "सै", "र्सा", "सॉ", "र्सो", "र्सौ", "सो", "सौ", _
"सा", "र्सी", "सी", "र्स्य", "र्स्या", "स्या", "स्य", "र्ज्ञ", "ज्ञो", "ज्ञौ", "ज्ञा", "र्रा", "रॉ", "रो", "रौ", "श्रो", "श्रौ", "रा", "श्रा", "प्रो", _
"प्रौ", "प्रा", "र्प", "प्र", "र्पे", "र्पै", "पे", "पै", "र्पा", "पॉ", "र्पो", "र्पौ", "पौ", "पो", "पा", "र्पी", "पी", "र्प्य", "र्प्या", "प्या", _
"प्य", "भ्रो", "भ्रौ", "भ्रा", "र्भ", "भ्र", "भॉ", "र्भे", "र्भै", "भे", "भै", "र्भा", "र्भो", "र्भौ", "भो", "भौ", "भा", "र्भी", "भी", "र्भ्य", _
"र्भ्या", "भ्या", "भ्य", "र्ह", "र्हे", "र्है", "हे", "है", "र्हा", "हॉ", "हॉ", "र्हो", "र्हौ", "हौ", "हो", "ळो", "ळौ", "हा", "ळा", "र्ही", _
"ही", "र्लि", "लि", "ल्ि", "ग्रि", "र्गि", "गि", "ग्ि", "ट्रि", "र्टि", "टि", "र्नि", "न्रि", "नि", "न्ि", "ज्रि", "र्जि", "जि", "ज्ि", "र्ति", _
"ति", "त्ि", "त्यि", "र्फि", "फ्रि", "फि", "र्चि", "च्रि", "चि", "च्ि", "र्वि", "व्रि", "वि", "व्ि", "र्छि", "र्दि", "द्रि", "छि", "दि", "ड्रि", _
"र्डि", "डि", "र्सि", "स्रि", "स्ति", "स्थि", "सि", "स्ि", "थ्रो", "थ्रौ", "थ्रा", "र्थ", "थ्र", "र्थे", "र्थै", "थे", "थै", "र्था", "थॉ", "र्थो", _
"र्थौ", "थो", "थौ", "था", "र्थी", "थी", "ज्ञि", "रि", "श्रि", "र्पि", "प्रि", "पि", "प्ि", "र्भि", "भ्रि", "भि", "भ्ि", "र्हि", "भि", "हि", _
"ळि", "थ्रि", "र्थि", "थि", "थ्ि", "र्मि", "म्रि", "मि", "म्ि", "क्रि", "र्कि", "क्ति", "कि", "क्ि", "र्बि", "ब्रि", "बि", "ब्ि", "ठ्रि", "र्ठि", _
"ठि", "र्झि", "झि", "झि", "त्रि", "त्रि", "ढ्रि", "र्ढि", "ढि", "र्धि", "ध्रि", "धि", "ध्ि", "द्वि", "क्षि", "क्ष्ि", "ख्रि", "र्खि", "खि", "ख्ि", _
"श्चि", "र्शि", "शि", "श्ि", "र्णि", "ण्रि", "णि", "घ्रि", "र्घि", "घि", "घ्ि", "र्यि", "य्रि", "र्थ्य", "र्थ्या", "थ्या", "यि", "थ्य", "म्रू", _
"म्रे", "म्रै", "म्रु", "म्रो", "म्रौ", "म्रा", "म्री", "म्रं", "म्रः", "र्म", "म्र", "र्मे", "र्मै", "मे", "मै", "र्म्स", "म्स", "र्मा", "मॉ", "र्मो", _
"र्मौ", "मौ", "मो", "मा", "र्मी", "मी", "र्म्य", "र्म्या", "म्या", "म्य", "क्रो", "क्रौ", "क्रा", "र्क", "क्र", "र्के", "र्कै", "के", "कै", "र्का", _
"कॉ", "र्को", "र्कौ", "कौ", "को", "का", "का", "र्की", "की", "र्क्य", "र्क्या", "क्या", "क्य", "ब्रो", "ब्रौ", "ब्रा", "र्ब", "ब्र", "र्बे", "र्बै", _
"बे", "बै", "र्बा", "बॉ", "र्बो", "र्बौ", "बो", "बौ", "बा", "र्बी", "बी", "र्ब्य", "र्ब्या", "ब्या", "ब्य", "ठ्रो", "ठ्रौ", "र्ठ", "ई", "ठ्र", _
"र्ठे", "र्ठै", "ठे", "ठे", "ठै", "र्ठा", "र्ठो", "र्ठौ", "ठो", "ठौ", "ठा", "र्ठी", "ठी", "द्या", "र्झ", "र्झे", "र्झै", "झे", "झै", "र्झा", _
"र्झो", "र्झौ", "झो", "झौ", "र्झी", "झी", "झा", "त्रे", "त्रो", "त्रौ", "त्रा", "त्रा", "ढ्रो", "ढ्रौ", "र्ढ", "ढ्र", "र्ढे", "र्ढै", "ढे", "ढै", _
"ढे", "ढै", "र्ढा", "र्ढो", "र्ढौ", "ढो", "ढौ", "ढा", "र्ढी", "ढी", "ढी", "ध्रो", "ध्रौ", "ध्रा", "र्ध", "ध्र", "र्धे", "र्धै", "धे", "धै", _
"र्धा", "र्धो", "र्धो", "धो", "धौ", "धी", "धा", "र्धी", "र्धी", "धी", "र्ध्य", "र्ध्या", "ध्या", "ध्या", "ध्य", "क्षो", "क्षौ", "क्षा", "ख्रे", "ख्रे", _
"ख्रो", "ख्रौ", "ख्रा", "र्ख", "ख्र", "खॉ", "र्खे", "र्खै", "खे", "खै", "र्खा", "र्खो", "र्खौ", "खौ", "खो", "खा", "र्खी", "खी", "र्ख्य", "र्ख्या", _
"ख्या", "ख्य", "र्श", "र्शे", "र्शै", "शे", "शै", "र्शा", "र्शो", "र्शौ", "शो", "शौ", "शा", "र्शी", "शी", "ण्रो", "ण्रौ", "र्ण", "र्णे", "र्णे", _
"र्णै", "णे", "णै", "र्णा", "र्णो", "र्णौ", "णो", "णौ", "णा", "र्णी", "र्णी", "णी", "घ्रो", "घ्रौ", "घ्रा", "र्घ", "घ्र", "र्घे", "र्घै", "घे", _
"घै", "र्घा", "र्घो", "र्घौ", "घो", "घौ", "घा", "र्घी", "घी", "र्घ्य", "र्घ्या", "घ्या", "घ्य", "य्रो", "य्रौ", "र्य", "र्ये", "र्यै", "ये", "यै", _
"र्या", "र्यो", "र्यौ", "यो", "यौ", "या", "र्यी", "यी", "ऐ", "र्", "्र", "ल", "ग", "ॅ", "ू", "ट", "अ", "न", "ज", "ै", _
"े", "त", "फ", "ु", "च", "व", "छ", "द", "ड", "उ", "स", "ज्ञ", "ा", "श्र", "र", "प", "भ", "ी", "ळ", "ह", _
"थ", "ि", "म", "क", "ब", "ठ", "इ", "।", "ं", "ऱ्", "्", "झा", "'", "ृ", "-", "?", "ध", "×", "क्ष", "ए", _
"ख", "", "श", "ण", "घ", "!", "९", "८", "७", "६", "५", "४", "३", "२", "१", "०", "द्य", "त्र", "ढ", "़", _
"द्व", ".", "ः", "य", ",", ";", "द्ध", "रु", "ऋ", ")", "(", "ध्", "/", "रू")
oFind = ThisComponent.createReplaceDescriptor()
oFind.SearchCaseSensitive = True
oSelections =ThisComponent.getCurrentSelection
oCompare = ThisComponent.getText()
For i = LBound(OriginalStrings) To UBound(OriginalStrings)
oFind.setSearchString(OriginalStrings(i))
oFound = ThisComponent.findAll(oFind)
If Not IsNull(oFound) Then
For j =0 To oFound.getCount()-1
For k = 0 To oSelections.getCount()-1
If Len(oSelections.getByIndex(k).getString()) > Len(OriginalStrings(i)) Then
If oCompare.compareRegionStarts(oFound(j), oSelections.getByIndex(k)) <= 0 And _
oCompare.compareRegionEnds(oFound(j), oSelections.getByIndex(k)) >=0 Then
oFound(j).setString(TargetStrings(i))
EndIf
EndIf
Next k
Next j
EndIf
Next i
End Sub