在Excel中,使用VBA,如何使用“路径+文件名+扩展名”并更改扩展名?

时间:2010-12-17 01:41:12

标签: excel vba

有一个动态生成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"

因此,如果这是正确的(source of code),如何将“.xls”替换为“.csv”,然后将该值插入文件调用中。或者,例如,为了简单起见,该文件具有使用此代码打印PDF的VBA;这将要求我使用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 个答案:

答案 0 :(得分:3)

替换可能正是您想要的:

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