2012-02-02 13 views
0

私がする必要があるので、誰かが私にこれを手伝ってくれることを願っています。ファイル名を英語から他の言語に変更する方法は?

英語のファイル名と他の列のファイル名を持つExcelファイルがあります。 私は他の言語でファイルの名前を変更する必要があります。名前を変更することは可能ですか?

Iは例このコードを

Sub pdfrenamefile() 
Dim oldfile As String 
Dim nwfile As String 
Dim rng As Range 
Dim fname As Range 
Set rng = Range("Y7", Range("Y" & Rows.Count).End(xlUp)) 
For Each fname In rng 
    If IsEmpty(fname) Or fname = "" Then 
    'do nothing 
    Else 
     If FileFolderExists(Cells(1, 1) & fname) Then 
      nwfile = fname.Offset(, 1) & ".PDF" 
      Name Cells(1, 1) & fname As Cells(1, 1) & nwfile 
      fname.Offset(0, 2) = nwfile 
      fname.Offset(0, 3) = "Success" 
     Else 
      Range("AB" & fname.Row) = "File Not Found" 
     End If 
    End If 
Next fname 
End Sub 

を試みた:

サンプルデータID OldFileName NewFileName

1 Sales1.PDF తెలుగు1.PDF 
2 Sales02.PDF తెలుగు02.PDF 
3 Sales567.PDF తెలుగు567.PDF 
4 dest67.PDF తెలుగు67.PDF 

私が試みたが、それが英語にのみ変換が、他に受け入れません。

ご協力いただきありがとうございます。

+0

あなたが試したことのコードは表示されません。あなたがしようとしていることを共有してください...そしてデータのサンプルも同様に。 –

+0

はレンジ セットRNG =範囲(「Y7」、レンジ(「Yとしてレンジ 薄暗いFNAMEとして文字列 薄暗いRNGなどの文字列 薄暗いnwfileとしてOLDFILE)コード( サブpdfrenamefileある 迅速な対応のためにあなたに 点心をMasudありがとうございました「 をRNGの各FNAMEについて&Rows.Count).END(xlUp)) 場合のisEmpty(FNAME)またはFNAME = "" さもなければそして そしてFileFolderExists(セル(1,1)&FNAME) nwfile = FNAME場合。 "032" fname.Offset(0、2)= nwfile fname.Offset(0、3)= "セルのセル(1,1)成功 " Else 012 終了した場合、それは実際に読めるだよう 次のFNAME End Subの – user1049518

+0

質問にコードを追加してください場合レンジ(「AB」&fname.Rowは)= 終了「ファイルが見つかりません」という。このコードASISはどこにも使用できません:(データ ID OldFileName NewFileName 1 Sales1.PDFతెలుగు1 –

答えて

4

私はコードを変更して動作させるようにしました。しかし、私はあなたのコードが混乱しているので、さらにいくつかの変更を推奨しました。

最初の古いファイル名がセルY7にあるように、サンプルデータを範囲X6:Z10に配置する必要がありました。

ファイルを保持するフォルダの名前をセルA1に配置する必要がありました。

変更の理由が明確であることを願っています。彼らがそうでないか尋ねなさい。

Sub pdfrenamefile() 

    Dim oldfile As String 
    Dim nwfile As String 
    Dim rng As Range 
    Dim fname As Range 

    ' I find your names confusing. For example, You should rename fname to make 
    ' clear that it is a range. You have declared oldname but do now use it. 

    ' You are using methods that require a file system object 
    Dim fso As Object 
    Set fso = CreateObject("Scripting.FileSystemObject") 

    Set rng = Range("Y7", Range("Y" & Rows.Count).End(xlUp)) 

    ' You use too many different methods of located cells. You use 
    ' rng.Offset(0, c), Cells(r, c) and "AB" & r. Will you understand this 
    ' code in six months? What if you decide to change the position of the 
    ' table of names? 

    For Each fname In rng 

    ' fname is a range. fname.Value is its value. 
    If IsEmpty(fname.Value) Or fname.Value = "" Then 
    Else 
     ' I have replaced "FileFolderExist" by "fso.FileExists". 
     ' "Cells(1, 1)" is acceptable but I prefer "Cells(1, 1).Value" 
     ' which makes absolutely clear you want the value. 
     If fso.FileExists(Cells(1, 1).Value & fname.Value) Then 
     ' You already have the extension in the worksheet so 
     ' do not need to add ".PDF". 
     nwfile = fname.Offset(0, 1).Value 
     ' You check the old file exists but not that the new file 
     ' does not exist. I have added another If-Then-Else-End If. 
     If fso.FileExists(Cells(1, 1) & nwfile) Then 
      Range("AB" & fname.Row) = nwfile & " already exists" 
     Else 
      ' The Name statement will not accept non-English letters. 
      ' I have used MoveFile which will accept non-English letters. 
      ' "fname.Value" not "fname" because "fname" is a range. 
      fso.movefile Cells(1, 1).Value & fname.Value, _ 
                Cells(1, 1).Value & nwfile 
      ' You have nwfile in Offset(0,1). Why duplicate it? 
      fname.Offset(0, 2) = nwfile 
      fname.Offset(0, 3) = "Success" 
     End If 
     Else 
     ' I have added the old name to the message to make clear 
     ' what has not been found. 
     Range("AB" & fname.Row) = fname.Value & " not found" 
     End If 
    End If 
    Next fname 

End Sub 
+0

このコードを改善するために+1を嫌います(そして、質問を理解しようとしています:) – JMax

+0

Tony Dallimoreそのうまく動作します。実際には、英語以外の文字、つまり他の言語でファイルの名前を変更する必要があります。あなたの変更されたコードはうまくいきます。英語以外のファイル名がそのまま(つまり英語以外の言語で)表示されるか、記号で表示されるか疑問があります。それをそのまま表示するには(非英語ではなく)私が何をする必要があります。助けてくれてありがとう... – user1049518

+0

あなたの名前を使ってダミーファイルの名前を変更しました。その外観は、あなたの例と同じ形で正しいです。 Windowsでは、ファイル名にアルファベットの文字を使用することができます。唯一の問題は非常に小さいフォントであったため、読みにくいことでした。私はそれらを大きくする方法があると確信していますが、私はそれが何であるか分かりません。 –