我正在使用大型数据文件。 Excel工作表的B列包含文件名。但是在下载过程中会有2个字符被替换(ä变成+ñ而ö变成+Â。)我需要能够使用这些文件名进行搜索,所以我需要将名称反转回原始名称。
这是我最初的尝试:
Private Sub scandit(n As Long)
Dim i As Long
For i = 2 To n
Dim a As String
Dim b As String
Dim c As String
Dim d As String
a = "+" & ChrW(194) ' +
b = ChrW(132) 'ä
c = "+" & ChrW(164) ' +n
d = ChrW(148) 'ö
If Not IsEmpty(Cells(i, 2).Value) Then
Cells(i, 2).Value = Replace(Cells(i, 2).Value, c, b)
Cells(i, 2).Value = Replace(Cells(i, 2).Value, a, d)
End If
Next i
End Sub
然而,这不起作用。 “+ñ”仅被删除但未被替换。 “+”没有任何反应。
经过一些谷歌搜索后,我发现了这个:
Sub CommandButton1_Click()
Dim fnd As Range
With ActiveSheet
.Cells.Replace what:="+" & ChrW(194), replacement:=ChrW(132),
lookat:=xlPart
.Cells.Replace what:="+" & ChrW(164), replacement:=ChrW(148),
lookat:=xlPart
End With
End Sub
这与我自己的代码完全相同。
替换应如何工作的示例:sy +Âd+ñ - > syödä
如果有人对如何继续这里有一些想法,我将不胜感激(请注意,我只想替换B栏中的单元格。)
答案 0 :(得分:0)
我刚刚更改了ChrW值,您的代码开始工作
Sub scandit()
Dim i As Long
For i = 2 To 5
Dim a As String
Dim b As String
Dim c As String
Dim d As String
a = "+" & ChrW(194) ' +
b = ChrW(228) 'ä
c = "+" & ChrW(241) ' +n
d = ChrW(246) 'ö
If Not IsEmpty(Cells(i, 2).Value) Then
Cells(i, 2).Value = Replace(Cells(i, 2).Value, c, b)
Cells(i, 2).Value = Replace(Cells(i, 2).Value, a, d)
End If
Next i
End Sub