Временно заменить значения в строке

У меня к вам очень простой вопрос, но я не могу найти его в Интернете. У меня есть список ArrayList(i), в котором я хочу заменить некоторые строки только одной строкой. После этой строки ее следует снова изменить. Это работает, но я хочу научиться делать это более эффективно. Я предполагаю, что мне нужен цикл только для строки «имя_файла», но я не уверен. Длина ArrayList каждый раз разная и не всегда содержит заменяемые строки, а только иногда.

    'REPLACE NAME
    ArrayList(i) = Replace(ArrayList(i), "NameOld1", "NameNew1")
    ArrayList(i) = Replace(ArrayList(i), "NameOld2", "NameNew2")
    
    finalName = PathCut & "XT\" & NumPart(initName) & "_" & partcode & " " & ArrayList(i) & " " & CodeNR & ExtNew

    'REPLACE NAME BACK
    ArrayList(i) = Replace(ArrayList(i), "NameNew1", "NameOld1")
    ArrayList(i) = Replace(ArrayList(i), "NameNew2", "NameOld2")

    swApp.CloseDoc ArrayList(i) & ".SLDPRT" 'Close the files

Я уверен, что должен быть более простой и чистый способ. Заранее спасибо!


65
1

Ответ:

Решено

Введите новую переменную newStr и используйте вложенную функцию Replace, тогда вам не придется возвращать ее с помощью двух последних замен.

    Dim newStr As String
    newStr = Replace(Replace(ArrayList(i), "NameOld1", "NameNew1"), "NameOld2", "NameNew2")
    
    finalName = PathCut & "XT\" & NumPart(initName) & "_" & partcode & " " & newStr & " " & CodeNR & ExtNew

    swApp.CloseDoc ArrayList(i) & ".SLDPRT" 'Close the files