仅将第一个工作表XLSX文件转换为CSV文件

时间:2016-07-21 15:02:42

标签: vba csv

我想将某个目录中的所有XLSX文件转换为CSV文件。每个生成的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 :(得分:0)

for循环替换为:

WS = x.Sheets(1)
WS.SaveAs SaveToDirectory & Left(x.Name, InStr(x.Name, ".") - 1) & "_" & WS.Name, xlCSV