2013-03-17 419 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