Как выбрать последнюю часть строки с VBa? - PullRequest
1 голос
/ 07 февраля 2020

Я пытаюсь назвать текстовый файл, созданный моим кодом.

текстовый файл является форматированной версией другого текстового файла. Допустим, у меня есть файл A: оригинальный файл и файл B: форматированный файл. файл B создан моим кодом VBa, и я хочу назвать файл B: формат + "файл A"

вот мой код:

Dim order As Object
Dim Folder As Object
Dim Folder_path As String
Dim lastrow As Long

Dim fSo As Object
Dim myFile As Object
MsgBox InStrRev(Sheets(8).Cells(6, 12).Value, "\")
FolderName = "Formated Files"
Filename = "formated " & Right(Sheets(8).Cells(6, 12).Value, InStrRev(Sheets(8).Cells(6, 12).Value, "\")

[...]

 Folder_path = FL + "\" + FolderName

Set fSo = CreateObject("Scripting.FileSystemObject")
If Not fSo.FolderExists(Folder_path) Then
    fSo.CreateFolder (Folder_path)
    If fSo.FolderExists(Folder_path) Then
        Set fSo = CreateObject("Scripting.FileSystemObject")
        Set myFile = fSo.CreateTextFile(Folder_path + "\" + Filename, True)

        myFile.WriteLine "Error"

        myFile.Close
        Set fSo = Nothing
    End If
Else
    If fSo.FolderExists(Folder_path) Then
    Set fSo = CreateObject("Scripting.FileSystemObject")
    Set myFile = fSo.CreateTextFile(Folder_path + "\" + Filename, True)

сейчас я пытаюсь получить имя файла B, используя путь к файлу A (поэтому мне нужно получить последнюю часть пути с именем файла A) и добавив к нему «форматированный».

Если вы видите лучший способ получить это имя или если вы найдете способ упростить мой код, не стесняйтесь помочь.

1 Ответ

1 голос
/ 07 февраля 2020

Если ваше имя файла выглядит примерно так:

C:/documents/docs/filename.txt

И вы хотите добавить слово перед .txt:

C:/documents/docs/filename_suffix.txt

возможно, самый простой способ:

newfilename = Replace(filename,".txt","_suffix.txt",,,1)


Однако, если вы хотите добавить слово до , начало имени файла:

C:/documents/docs/prefix_filename.txt

, затем вы можете использовать GetBaseName FSO вместо

filebase=fso.getbasename(filename) & "."
newfilename = Replace(filename,filebase,"prefix_" & filebase,,,1) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...