我正在尝试将Excel工作表文件夹另存为.csv。但是,我只能保存活动工作表的.csv。是否可以指定我要从中添加这些excel文件文件夹中的哪张纸?
非常感谢您!
我应该在哪里将工作表名称放在代码中,以指定仅应针对该特定工作表进行循环?谢谢!
'Loop through each Excel file in folder
Do While myFile <> ""
'Set variable equal to opened workbook
Set wb = Workbooks.Open(Filename:=myPath & myFile)
nameWb = myPath & Left(myFile, InStr(1, myFile, ".") - 1) & ".csv"
ActiveWorkbook.SaveAs Filename:=nameWb, FileFormat:=xlCSV
ActiveWorkbook.Close savechanges:=False
'Get next file name
myFile = Dir
Loop
答案 0 :(得分:0)
我在项目中做的大致相同。我将要保存的WS复制到新的WB,然后保存新文件。
Workbooks(ExportFile).Worksheets(ExportSheet).Copy
ActiveWorkbook.SaveAs "path/" & ExportSheet & ".txt", FileFormat:=xlCSV
据我所知,复制工作表是保存特定工作表的唯一方法。
答案 1 :(得分:0)
这里是如何遍历工作表的方法。基本上,您可能会测试名称是否与您的预定列表匹配。您还可以对命名范围进行错误检查,或使用多种其他方式来标记要使用的工作表。
'define variables
Dim wb As Workbook, WS As Worksheet
Do While myFile <> ""
'Set variable equal to opened workbook
Set wb = Workbooks.Open(Filename:=myPath & myFile)
'Here's the loop you are looking for I think
For Each WS In wb.Worksheets
'OR statements/If statements can be used.
'Also lookout for name syntax being case-sensative. You might
'want to include Ucase on both sides to defend against inconsistencies.
If WS.Name = "LetsDoThisSheet!" Or UCase(WS.Name) = UCase("AndThisone2") Then
WS.Visible = xlSheetVisible
WS.Activate
nameWb = myPath & Left(myFile, InStr(1, myFile, ".") - 1) & ".csv"
ActiveWorkbook.SaveAs Filename:=nameWb, FileFormat:=xlCSV
ActiveWorkbook.Close savechanges:=False
End If
Next WS
'Get next file name
myFile = Dir
Loop