Добавление комментария в качестве ответа, чтобы код был более читабельным:
Я хотел бы выбрать диапазон, в котором я хочу заменить значения, затем l oop через специальные символы для замены, в целом, в пределах досягаемости. Единственное реальное предостережение, которое нужно помнить, это то, что будет влиять на формулы.
dim accentArr as variant, noAccentArr as variant
'accent and noaccent need to have same upper bound for this approach!
accentArr = Array("Š","Ž","š") 'quick mockup
noAccentArr = Array("S","Z","s")
dim i as long
For i = lbound(accentArr) to ubound(accentArr)
ws.range("a1:z5").replace(accentArr(i),noAccentArr(i))
Next i
Вместо того, чтобы проходить символ за символом в ячейке, вы по крайней мере делаете массовую замену для указанных c символы ... это также позволяет вашему Range()
начинаться со строки 7, чтобы не включать строку 6.
Postscript, см .: Разбить строку на массив символов? если вы хотите использовать существующую строку без необходимости вручную разбивать строку символов на массив.