在Excel中,如果使用VBA,我如何使用“路径+文件名+扩展名”并更改扩展名?
问题描述:
有一个动态生成Excel文件和csv的程序。 excel文件有加载csv数据的“加载”的VBA代码,我想通过让csv文件具有相同的文件名,但只是不同的扩展名来动态调用该csv。所以,根据我的理解这一点,如果XLS文件在这里:在Excel中,如果使用VBA,我如何使用“路径+文件名+扩展名”并更改扩展名?
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
希望这个问题是清楚的,如果有一个更好的解决方案的概念,我接受它。如果你有问题,请告诉我。
答
替换可能是你想要什么:
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
+1酷,你有没有测试它,或只是猜测它会工作?另外,如何将GetFullNameCSV()插入PrintPDF()示例中的Filename属性?谢谢! – blunders 2010-12-17 01:57:54
我没有测试,但我对Replace很熟悉。我已经勾画出了一种使用这种方法的方法。 – Fionnuala 2010-12-17 02:03:01
+1好的,只是检查,想通了,只是没有安装Excel来测试它 - 说,认为这是可能的我不理解你的代码,或更可能是,你不了解的核心我的问题。我如何取>,并将其读作>。文件名的引用取自我的问题中的“Sub PrintPDF()”示例。意思我猜我不能只是插入“GetFullNameCSV()”作为文件名位置没有一些特殊的格式。对,还是不?再次谢谢你!! – blunders 2010-12-17 02:11:10