2017-04-12 22 views
-1

初めてコードを実行すると、既存のドキュメントが置き換えられ、問題なくCSVファイルが保存されます。しかし、コードを2回実行すると、CSVを保存するとExcelがクラッシュします。CSVファイルとして2回目に保存するとExcelがクラッシュする

私はExcelをはじめて開くコードを実行した後、回避策がありますが、時間がかかりすぎますか、アイデアはありますか?

Sub copiar_ayuda1() 
    Application.DisplayAlerts = False 
    With Sheets("input11") 
    .Select 
    .Move 
    End With 
    PathName = "" & ThisWorkbook.Path & "os.csv" 

    ActiveWorkbook.SaveAs Filename:=PathName, FileFormat:=xlCSV, CreateBackup:=False 

    Application.CutCopyMode = False 
    ActiveWorkbook.Saved = True 
    ActiveWorkbook.Close 

End Sub 
+0

正確に何をしようとしますか? 'Sheets(" input11 ")'を 'CSV'ファイル形式として保存するのですか? –

+1

あなたは何を得ていますか?どの命令がそれを引き起こすのか?あなたの質問は不完全です、[編集]してください - いいえ、エラーはありません、ありますか?コードは機能しますが、遅いだけですか?投稿を明確にしていただけますか? –

+0

私はExcelを持っていて、CSV形式のシートとして保存したい( "input11")。そして、私は初めて問題なくコードを実行し、CSVを作成して既存のものを置き換えました。そして、私が2回目に走ったときに、「Microsoft Excelがうまく動作しなくなった」と驚いた。古いファイルを置き換えて新しいCSVファイルを保存したときに起こったことです。 –

答えて

0

あなたは「CSV」ファイルとしてSheets("input11")を保存しようとしている場合は、すべてを行う必要がある:

Option Explicit 

Sub copiar_ayuda1() 

Dim PathName As String 
Dim Sht As Worksheet 

Application.DisplayAlerts = False 

PathName = ThisWorkbook.Path & "\os.csv" 

Set Sht = ThisWorkbook.Worksheets("input11") 
With Sht 
    .SaveAs Filename:=PathName, _ 
    FileFormat:=xlCSV, CreateBackup:=False 
End With 

Application.CutCopyMode = False 

End Sub 
+0

@Diego Bauza上記のコードを試してみましたか?あなたが意図したとおりに働いていますか? –

+0

回答ありがとうございます。私が意図したとおりに動作していません。これはシート "input11"の名前を "os"に置き換え、元のファイル全体を名前 "os"のCSV形式で保存します。 –

関連する問題