2016-07-21 16 views
0

特定のディレクトリにあるすべてのXLSXファイルをCSVファイルに変換したいと考えています。結果として得られる各CSVファイルには、XLSXファイルの最初のワークシートのみが含まれ、ディレクトリのサブフォルダに保存されます。 私は別のCSVとしてすべてのワークシートを保存することを除いて、うまく動作する次のスクリプトを使用しています。私は最初のものが必要です。最初のワークシートXLSXファイルのみをCSVファイルに変換する

誰かにスクリプトの修正方法を教えてもらえますか?私はVBAに関する経験はほとんどありません。

Sub Loop_Through_Files() 

Dim WS As Excel.Worksheet 
Dim myPath As String 
Dim myFile As String 
Dim myExtension As String 
Dim FldrPicker As FileDialog 


Application.ScreenUpdating = False 
Application.DisplayAlerts = False 

myExtension = "*.xl??" 
myPath = ActiveWorkbook.Path 
myFile = Dir(myPath & "\" & "Input" & "\" & myExtension) 

'Loop through each Excel file in folder 
Do While myFile <> "" 
'Open workbook 
Set x = Workbooks.Open(Filename:=myPath & "\" & "Input" & "\" & myFile) 

SaveToDirectory = ActiveWorkbook.Path 

For Each WS In x.Worksheets 
WS.SaveAs SaveToDirectory & Left(x.Name, InStr(x.Name, ".") - 1) & "_" & WS.Name, xlCSV 
Next 


x.Close SaveChanges:=True 

'Get next file name 
myFile = Dir 
Loop 

Application.ScreenUpdating = True 
Application.DisplayAlerts = True 

End Sub 
+1

... ){シートを書く;休憩} ' –

答えて

0

これであなたforループを交換してください:あなたが唯一の最初のシートをしたい場合は、 `for`ループを使用し、または(のための`のような何かをしないのいずれか

WS = x.Sheets(1) 
WS.SaveAs SaveToDirectory & Left(x.Name, InStr(x.Name, ".") - 1) & "_" & WS.Name, xlCSV 
関連する問題