2017-06-02 5 views
0

大きなデータファイルを扱っています。 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 + AD + N - >syödä

誰かがここで続行する方法についていくつかのアイデアは(私だけの交換をしたいということに注意していた場合、それははるかに高く評価されるだろうB列のセル。)

答えて

0

私はちょうどChrW値を変更し、あなたのコードは私が使っていたテーブルをmissreadている必要があります

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 
+0

ダムを働き始めました。ありがとう! – Alluton

関連する問題