将字符“链”replace为另一个字符“链”

我的小问题以下:(

Option Compare Text Sub pocetpismen() With List1 Specialchar = "á.č.ř.ž.ý" nonspec = "acrzy" delka = Len(Cells(8, 6)) delka1 = (delka - 1) / 2 leva = Left(Cells(8, 6), delka1) prava = Right(Cells(8, 6), delka1) Cells(26, 4) = leva 'just to help me For Each char In Split(Specialchar, ".") leva = Replace(leva, char, Split(nonspec, ".")) Next Cells(25, 4) = leva 'just to help me If leva = prava Then Cells(8, 6).Interior.Color = RGB(255, 204, 0) ElseIf leva <> prava Then Cells(8, 6).Interior.Color = RGB(255, 255, 255) End If End With 

所以在这个部分:

  For Each char In Split(Specialchar, ".") leva = Replace(leva, char, Split(nonspec, ".")) Next 

它不会replace我想要的字符(它甚至不运行)

例如,我不希望用单个字符replaceSpecialchar = "á.č.ř.ž.ý"定义的所有字符,就像我会用

 For Each char In Split(Specialchar, ".") leva = Replace(leva, char, "X") Next 

我希望á被replace为acc等…任何帮助家伙? 提前致谢!

只需使用Range.Replace :

 Sub RelaceThem() Sheets("Sheet1").Cells.Replace What:="á", Replacement:="a", SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlPart Sheets("Sheet1").Cells.Replace What:="č", Replacement:="c", SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlPart Sheets("Sheet1").Cells.Replace What:="ř", Replacement:="r", SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlPart Sheets("Sheet1").Cells.Replace What:="ž", Replacement:="z", SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlPart Sheets("Sheet1").Cells.Replace What:="ý", Replacement:="y", SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlPart End Sub 

对于要replace的其他字符,执行相同的代码行。 请记住,这只适用于小写(我有它MatchCase:=True ),但你可以做5个更多的行大写字母replace。