首页 > 解决方案 > 替换除第 6 行以外的重音字符

问题描述

此代码替换工作表上的所有重音字符:

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 行中的任何内容,我该怎么做?

标签: excelvbacharacter

解决方案


根据您的设置,将第 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 行中的公式,因此如果这是您的设置,您将需要不同的方法。


推荐阅读