【发布时间】:2023-03-29 11:44:01
【问题描述】:
我有这段代码可以替换除第 6 行之外的所有重音字符。但是,这个宏需要很长时间,因为它会遍历每个单元格/字母,有什么方法可以通过忽略没有的单元格来加快速度'他们没有任何口音?
Const sFm As String = "ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ"
Const sTo As String = "SZszYAAAAAACEEEEIIIIDNOOOOOUUUUYaaaaaaceeeeiiiidnooooouuuuyy"
Dim i As Long, employeews As Worksheet
Dim rowsix() As Variant
Set employeews = DestWb.Sheets(1)
'Don't replace row 6
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
【问题讨论】:
-
我想选择一个我想替换其中的值的范围,然后循环遍历特殊字符以替换整个范围内的值。唯一要记住的真正警告是,这会影响公式。
For i = lbound(arr) to ubound(arr) // ws.range("a1:z5".replace(accentArr(i),noAccentArr(i))
标签: excel vba diacritics