0
我有大约600个不同的文本字符串,我需要在XML文件内进行替换(我正在使用记事本++,但如果这可以完成任务,我也可以使用其他程序)。文本更改列在一个单独的Excel文件中。有没有办法让我可以运行一个脚本或命令来查找/替换一个镜头中的所有字符串,而无需单独执行每个字符串?如何在xml文件中查找/替换多个字符串?
谢谢
我有大约600个不同的文本字符串,我需要在XML文件内进行替换(我正在使用记事本++,但如果这可以完成任务,我也可以使用其他程序)。文本更改列在一个单独的Excel文件中。有没有办法让我可以运行一个脚本或命令来查找/替换一个镜头中的所有字符串,而无需单独执行每个字符串?如何在xml文件中查找/替换多个字符串?
谢谢
你可以使用一些简单的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
谢谢您的帮助。我仍然遇到麻烦......因为我不是专家。我已将代码复制到VBA中。现在我试图运行我的范围ReplaceXML Range(“A1:B600”)上的代码,但我不确定在哪里/如何执行此操作。你能解释一下吗? – Mark 2013-03-17 03:30:30
从vba窗口中查看 - 立即。然后在那里输入ReplaceXML Range(“A1:B600”)并回车。 – gavinj500 2013-03-17 10:38:10
我输入了你指出的内容,并且出现此错误:编译错误:未定义子或函数。有什么额外的帮助可以提供吗?非常感谢 – Mark 2013-03-17 13:06:10