2016-08-05 47 views
1

上我不能工作了,爲什麼當我運行它下面的副本選擇腳本正確的,正確格式化fName,然後粘貼到成功的一個新的工作簿,然後創建一個txt文件沒有什麼。Excel中複製選擇並粘貼到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 

回答

3

Workbooks.Add.SaveAs fName, xlTextWindows語句添加一個新的工作簿,然後立即將其保存。自然,它將是空的。

你需要做一個wbDest.SaveAs fName, xlTextWindows來代替。

保存之後,你可以做一個wbDest.Close False關閉它不保存。 (無指向保存它第二次。)

+0

感謝您的幫助在這裏,我做了改變,它在我的'Documents'文件夾中創建的文件。請注意,它在我的桌面上作爲工作簿開放。有什麼方法可以靜靜地做到這一點嗎?我嘗試關閉它創建的工作簿,並獲得「您想要保存嗎?」我試圖避免的問題。我創建這個劇本讓我可以通過腳本需要創建一個之後的下一個文本文件,由於負載循環 –

+0

@MattLightbourn - 'wbDest.Close FALSE' – YowE3K

+0

@ YouE3K真棒,謝謝。我完全忽略了最後一行:) –