2016-08-05 5 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素晴らしい、ありがとう。私は最後の行を完全に見落としました:) –

関連する問題