我无法理解为什么当我运行下面的脚本时,它会正确复制选择,正确格式化fName
,然后成功粘贴到新工作簿,然后创建一个没有任何内容的txt文件。
我要做的是将我复制的选项粘贴到一个新的文本文件中,使用'fName'作为文件的文件名。感谢
Sub SaveAsXML_txt()
'
' set the length of XML
Dim xmlLength As Integer
Dim fName As String
xmlLength = Range("I9")
fName = Range("I3") & " " & Range("I10") & " XML"
'
' set the filename of textfile
'
Dim wbSource As Workbook
Dim wsSource As Worksheet
Dim wbDest As Workbook
'
' References
Set wbSource = ActiveWorkbook
Set wsSource = ActiveSheet
Set wbDest = Workbooks.Add
'
' select the whole XML to copy
wsSource.Range("K2:K" & xmlLength).Copy
'
'Save in new workbook
wbDest.Worksheets(1).Cells(1, 1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Workbooks.Add.SaveAs fName, xlTextWindows
End Sub
答案 0 :(得分:3)
您的Workbooks.Add.SaveAs fName, xlTextWindows
语句是添加新工作簿,然后立即保存。当然,它将是空的。
您需要改为wbDest.SaveAs fName, xlTextWindows
。
保存后,您可以执行wbDest.Close False
关闭它而不保存。 (没有必要再次保存它。)