Excel复制选择并粘贴到我的桌面上的txt文件

Excel复制选择并粘贴到我的桌面上的txt文件,excel,vba,Excel,Vba,我无法理解为什么当我运行下面的脚本时,它会正确复制选择,正确格式化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") &a

我无法理解为什么当我运行下面的脚本时,它会正确复制选择,正确格式化
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

您的
Workbooks.Add.SaveAs fName,xlTextWindows
语句正在添加新工作簿,然后立即保存它。很自然,它将是空的

您需要改为执行
wbDest.SaveAs fName,xlTextWindows


保存后,您可以执行
wbDest.Close False
关闭它而不保存。(没有必要再保存一次。)

感谢您的帮助,我做了更改,它在我的
文档
文件夹中创建了文件。请注意,它是作为工作簿在我的桌面上打开的。有没有什么办法可以安静地做这件事?我试图关闭它创建的工作簿,我得到了一个“你想保存吗?”的问题,我试图避免这个问题。我正在创建这个脚本,这样我可以循环加载脚本需要创建的文本文件,thanks@MattLightbourn-
wbDest.Close False
@YouE3K真棒,谢谢。我完全忽略了最后一行:)@mattleightbourn你没有忽略最后一行-我在回答你的问题时把它添加到了答案中。