Заменить акцентированные символы, кроме строки 6 - PullRequest
0 голосов
/ 03 февраля 2020

Этот код заменяет все акцентированные символы на листе:

Const sFm As String = "ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ"
Const sTo As String = "SZszYAAAAAACEEEEIIIIDNOOOOOUUUUYaaaaaaceeeeiiiidnooooouuuuyy"

Dim i As Long, employeews As Worksheet

Set employeews = ActiveWorkbook.Sheets(1)

For i = 1 To Len(sFm)
    employeews.Cells.Replace Mid(sFm, i, 1), Mid(sTo, i, 1), LookAt:=xlPart, MatchCase:=True
Next i

Я не хочу ничего заменять в строке 6, как мне это сделать?

1 Ответ

2 голосов
/ 03 февраля 2020

В зависимости от вашей настройки, прочитайте строку 6 в массив, выполните замену, как у вас сейчас, и затем запишите массив обратно в строку 6.

Dim rowSix() as Variant
rowSix = employeews.Rows(6).Value

For i = 1 To Len(sFm)
    employeews.Cells.Replace Mid(sFm, i, 1), Mid(sTo, i, 1), LookAt:=xlPart, MatchCase:=True
Next i

employeews.Rows(6).Value = rowSix

Обратите внимание, что это перезапишет формулы в строка 6, так что если это ваша установка, вам понадобится другой подход.

...