В Excel, используя VBA, как мне взять «путь + имя файла + расширение» и изменить расширение? - PullRequest
0 голосов
/ 17 декабря 2010

Имейте программу, которая динамически генерирует файл Excel и CSV. Файл Excel содержит код VBA, который загружает данные CSV «под нагрузкой», и я хочу динамически вызывать этот CSV, так как файл CSV имеет то же имя файла, но только другое расширение. Итак, исходя из моего понимания, если файл xls был здесь:

C:\directory\filename.xls

Этот код VBA:

Function GetFullName() As String

 GetFullName = ThisWorkbook.FullName 

End Function

приведет к

GetFullName() = "C:\directory\filename.xls"

Итак, если это правильно ( источник кода ), как заменить ".xls" на ".csv", а затем вставить это значение в вызов файла. Или, например, для простоты, файл имеет VBA, который печатает PDF с использованием этого кода; что потребовало бы от меня использовать GetFullName и изменить ".xls" на ".pdf":

Sub PrintPDF()

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\directory\filename.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False _

End Sub

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

1 Ответ

3 голосов
/ 17 декабря 2010

Заменить может быть именно то, что вы хотите:

Function GetFullNameCSV() As String

 GetFullNameCSV = Replace(ThisWorkbook.FullName, ".xls",".csv")  

End Function

Вы можете расширить это, добавив желаемое расширение так:

sFileName = GetNewExt("pdf")

Function GetNewExt(Ext As String) As String

 GetNewExt = Replace(ThisWorkbook.FullName, ".xls","." & Ext)  

End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...