VBA 将 Excel 范围导出到特定目录和文件名
Posted
技术标签:
【中文标题】VBA 将 Excel 范围导出到特定目录和文件名【英文标题】:VBA Export Excel Range to specific directory and file name 【发布时间】:2012-12-15 22:34:18 【问题描述】:我有一个 Excel 工作表,我需要将范围 A:1 到 A 列中最后使用的单元格导出到 xml 文件。怎么设置导出的文件名和我导出的文件名一样?
Sub exportxmlfile()
Dim myrange As Range
Worksheets("xml").Activate
Set myrange = Range("A1:A20000")
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("C:\exports\2012\test.xml", True)
For Each c In myrange
a.WriteLine (c.Value)
Next c
a.Close
End Sub
【问题讨论】:
【参考方案1】:使用Workbook.Name
属性获取文件名。
FWIW,有一些机会可以改进您的代码
Sub exportxmlfile()
' declare all your variables
Dim myrange As Range
Dim fs As Object
Dim a As Object
Dim dat As Variant
Dim i As Long
' No need to activate sheet
With Worksheets("xml")
' get the actual last used cell
Set myrange = .Range("A1", .Cells(.Rows.Count, 1).End(xlUp))
' copy range data to a variant array - looping over an array is faster
dat = myrange.Value
Set fs = CreateObject("Scripting.FileSystemObject")
' use the excel file name
Set a = fs.CreateTextFile("C:\exports\2012\" & .Parent.Name & ".xml", True)
End With
For i = 1 To UBound(dat, 1)
a.WriteLine dat(i, 1)
Next
a.Close
End Sub
【讨论】:
哇!谢谢克里斯!像魅力一样工作。以上是关于VBA 将 Excel 范围导出到特定目录和文件名的主要内容,如果未能解决你的问题,请参考以下文章
使用 VBA 将 MS Access 记录集导出到 Excel 中的多个工作表/选项卡会生成只读文件
如何使用 Excel VBA 打开 Outlook excel 附件,在特定时间范围内发送到特定 Outlook 文件夹?
VBA 展望。尝试从电子邮件正文中提取特定数据并导出到 Excel
使用VBA将VBA模块从Access项目导出到Excel项目