在文件夹中的所有工作簿中循环使用vba函数

在文件夹中的所有工作簿中循环使用vba函数,vba,excel,Vba,Excel,我想循环浏览文件夹中的所有工作簿,提取名为“Sheet Name”的工作表,并将它们保存为.csv文件,并使用它们的源文件名。做这件事的快捷方法是什么 有关vba函数的示例: Sub Sheet_SaveAs() Dim wb As Workbook Sheets("Sheet Name").Copy Set wb = ActiveWorkbook With wb .SaveAs ThisWorkbook.Path & "\" & ThisW

我想循环浏览文件夹中的所有工作簿,提取名为“Sheet Name”的工作表,并将它们保存为.csv文件,并使用它们的源文件名。做这件事的快捷方法是什么

有关vba函数的示例:

Sub Sheet_SaveAs()
  Dim wb As Workbook
  Sheets("Sheet Name").Copy  
  Set wb = ActiveWorkbook       
  With wb
  .SaveAs ThisWorkbook.Path & "\" & ThisWorkbook.name, FileFormat:=xlCSV
  '.Close False
  End With
End Sub
非常感谢您的关注

编辑:不是重复的,因为我正在从多个工作簿中提取工作表,而不是从单个工作簿中提取多个工作表

编辑2:谢谢大家。

诸如此类

更改此路径以适合您的文件夹

strFolder = "c:\temp"
代码

像这样的

更改此路径以适合您的文件夹

strFolder = "c:\temp"
代码


可能重复我认为你是对的,尽管我尝试了标记为answer的代码,但我得到一个错误,我的文件可能已损坏或只读,这是我以前没有得到的。•在vbscript中不能使用xlCSV等命名常量,因此使用下面的6作为CSV格式~对于objWB.Sheets objws.Copy objExcel.ActiveWorkbook.SaveAs objWB.Path&“\”&objws.Name&“.csv”中的每个objws,6 objExcel.ActiveWorkbook.Close False Next~然后重试请在我之前测试过的帖子中尝试@brettdj代码,它是有效的。你提到的解决方案不适用于在一个文件夹中跨多个工作簿进行复制;我认为它们适用于工作簿中的多个工作表。可能的重复我认为您是对的,尽管我尝试了标记为“答案”的代码,但我得到一个错误,即我的文件可能已损坏或只读,这是我以前没有得到的。•您不能在vbscript中使用xlCSV等命名常量,因此使用下面的6作为CSV格式~对于objWB.Sheets objws.Copy objExcel.ActiveWorkbook.SaveAs objWB.Path&“\”&objws.Name&“.csv”中的每个objws,6 objExcel.ActiveWorkbook.Close False Next~然后重试请在我之前测试过的帖子中尝试@brettdj代码,它是有效的。你提到的解决方案不适用于在一个文件夹中跨多个工作簿进行复制;我认为它们适用于工作簿中的多个工作表。