2017-10-04 11 views
0

を選択することはできません。XLSX:不必要確認のメッセージが表示されます、私は次のコードでCSVへのxlsxファイルを変換したい場合は範囲​​

WorkingDir = "C:\Users\Admin\Documents\example.xlsx" 

Dim fso, FileName, SaveName, myFile 
Dim objExcel, objWorkbook 

Set fso = CreateObject("Scripting.FilesystemObject") 
Set myFile = fso.GetFile(WorkingDir) 

Set objExcel = CreateObject("Excel.Application") 

objExcel.Visible = False 
objExcel.DisplayAlerts = True 

FileName = Left(myFile, InStrRev(myFile, ".")) 
Set objWorkbook = objExcel.Workbooks.Open(myFile) 
objWorkbook.Sheets(1).Range("A2:C2").Select 
SaveName = FileName & "csv" 
objWorkbook.SaveAs SaveName, 23 
objWorkbook.Close 

Set objWorkbook = Nothing 
Set objExcel = Nothing 
Set fso = Nothing 
Set myFolder = Nothing 

それは動作しますが、私は私の変更を保存したい場合は、私に尋ねますexample.csvファイルに保存します。保存は確認せずに動作し、最終的に存在する.csvファイルも上書きする必要があります。
2番目の問題は、.csvファイルに変換されるexample.xlsxファイルの特定の部分(行と列)を選択する範囲コマンドが機能しないことです。しかし、エラーはありません。 vbscriptがこのコマンドにジャンプするようです。
ありがとうございます。

答えて

2

ファイルが既にあなたの選択範囲を保存するという点では

objWorkbook.Saved = true 
objWorkbook.Close 

に保存されていることをExcelを言ってみ、あなたは言い換えれば

objWorkbook.Sheets(1).Range("A2:C2").Copy 
dim sheet: set sheet = objWorkbook.Sheets.Add() 
' Add()ing should actually activate the sheet 
' sheet.Activate 
sheet.Paste 
' SaveAs will save the active sheet 
objWorkbook.SaveAs FileName, 23 

を試みることができる、あなたは、第二のデータを複製する必要がありますワークシートをCSVとして保存します。保存せずにブック(xlsx)を閉じると、新しいシートは破棄されます。

+0

ありがとうございます。すべてが機能しています。 – nolags

+1

@nolags great!私は時々驚きます –

関連する問題