2013-03-17 425 views
0

我有大約600個不同的文本字符串,我需要在XML文件內進行替換(我正在使用記事本++,但如果這可以完成任務,我也可以使用其他程序)。文本更改列在一個單獨的Excel文件中。有沒有辦法讓我可以運行一個腳本或命令來查找/替換一個鏡頭中的所有字符串,而無需單獨執行每個字符串?如何在xml文件中查找/替換多個字符串?

謝謝

回答

1

你可以使用一些簡單的VBA從您的Excel S/S之內完成這項工作。通過傳遞查找替換範圍來調用下面的Sub,例如從Excel的VBA即時窗口(使用訪問ALT + F11的VBA編輯器,然後查看 - >即時):

ReplaceXML Range("A1:B600") 

假設A1:B600包含600查找替換字符串。

定義下面的模塊後(插入 - >從VBA編輯器(ALT + F11)內的模塊):

Option Explicit ' Use this ! 

Public Sub ReplaceXML(rFindReplaceRange as Range) ' Pass in the find-replace range 

    Dim sBuf As String 
    Dim sTemp As String 
    Dim iFileNum As Integer 
    Dim sFileName As String 
    Dim i as Long 

    ' Edit as needed 
    sFileName = "C:\filepath\filename.xml" 

    iFileNum = FreeFile 
    Open sFileName For Input As iFileNum 

    Do Until EOF(iFileNum) 
     Line Input #iFileNum, sBuf 
     sTemp = sTemp & sBuf & vbCrLf 
    Loop 

    Close iFileNum 

    ' Loop over the replacements 
    For i = 1 To rFindReplaceRange.Rows.Count 
     If rFindReplaceRange.Cells(i, 1) <> "" Then 
      sTemp = Replace(sTemp, rFindReplaceRange.Cells(i, 1), rFindReplaceRange(i, 2)) 
     End If 
    Next i 

    ' Save file 

    iFileNum = FreeFile 

    ' Alter sFileName first to save to a different file e.g. 
    sFileName = "C:\newfilepath\newfilename.xml" 
    Open sFileName For Output As iFileNum 

    Print #iFileNum, sTemp 

    Close iFileNum 

End Sub 
+0

謝謝您的幫助。我仍然遇到麻煩......因爲我不是專家。我已將代碼複製到VBA中。現在我試圖運行我的範圍ReplaceXML Range(「A1:B600」)上的代碼,但我不確定在哪裏/如何執行此操作。你能解釋一下嗎? – Mark 2013-03-17 03:30:30

+0

從vba窗口中查看 - 立即。然後在那裏輸入ReplaceXML Range(「A1:B600」)並回車。 – gavinj500 2013-03-17 10:38:10

+0

我輸入了你指出的內容,並且出現此錯誤:編譯錯誤:未定義子或函數。有什麼額外的幫助可以提供嗎?非常感謝 – Mark 2013-03-17 13:06:10