Ich bin ein technischer Schriftsteller und nicht viel von einem Coder, ich habe Tausende von. XML-Dateien, die kombiniert ein Buch zu erstellen. Ich habe ein VBA-Skript von dieser Website verwendet, um alle Dateien umzubenennen, damit sie in die neuen Richtlinien passen. Jetzt muss ich in den XML-Code gehen und alle Referenzen zu diesen Links finden und sie durch den neuen Dateinamen ersetzen.Wie ändere ich mehrere Referenz-Tags in XML basierend auf Tabellenwerten
Ich habe eine Excel-Tabelle, in Spalte A hat es den alten Dateinamen und in Spalte B hat es den neuen Dateinamen.
Der Tag sieht wie folgt aus:
<?iads.link docref="R381"?>
Es braucht "R381"
in Spalte A zu finden und ersetzen Sie es mit "R01081-1-1520-237"
, der Dateiname in der benachbarten Zelle in Spalte B
Der Tag muss wie folgt aussehen:
<?iads.link docref="R01081-1-1520-237"?>
ich den Code von der Frage versucht, mit How can I Find/Replace multiple strings in an xml file? aber es hat nicht funktioniert und ich bin nicht einmal sicher, ob das ist die richtige Frage
Meine aktuellen Code zu fragen, sieht dies liegen:
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:\Users\s37739\Desktop\chap3"
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:\Users\s37739\Desktop\chap3"
Open sFileName For Output As iFileNum
Print #iFileNum, sTemp
Close iFileNum
End Sub
Sub mike1()
End Sub
Können Sie uns sagen, mehr darüber, warum die referenzierte Code nicht für Sie arbeiten? Was sind die Probleme mit dem Code, die Sie nicht lösen konnten? Erhalten Sie Fehler? –
Wenn ich F5 drücke, um das Skript auszuführen, passiert nichts. Auf dem Umbenennungsskript, das ich ausführte, würde es mich bitten, es in einen Ordner zu richten, in dem sich die Dateien befanden. mit dem find replace script tat es nichts ... deshalb war ich mir nicht sicher ob ich das richtige skript hatte oder nicht. –
Haben Sie die Parameter vom Skript geändert? Das Find/Replace-Skript enthält Werte direkt im Code, z. B. 'sFileName =" C: \ temp \ filelocation.xml "'. Bitte [bearbeiten] (http://stackoverflow.com/posts/41702769/edit) Ihre Frage und fügen Sie Ihren aktuellen Code ein, so dass es einfacher sein wird, zu helfen :) –