有一个动态生成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
希望问题很清楚,如果有更好的解决方案概念,我愿意接受。如果您有疑问,请告诉我。
答案 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