Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 将每个工作表另存为新工作簿_Vba_Excel - Fatal编程技术网

Vba 将每个工作表另存为新工作簿

Vba 将每个工作表另存为新工作簿,vba,excel,Vba,Excel,My below VBA函数用于宏中,该宏创建新工作表,并根据主工作簿C列中的特定单元格值进行保存 我希望它,而不是创建新的工作表和粘贴数据在其中,保存在一个新的工作簿中的主文件保存在同一文件夹。 我不想要新的工作表,我想要具有相同数据的新工作簿 Private Function GetWorksheet(sName As String) As Worksheet On Error Resume Next Dim oSh As Worksheet Set oSh = ThisWorkbook.W

My below VBA函数用于宏中,该宏创建新工作表,并根据主工作簿C列中的特定单元格值进行保存

我希望它,而不是创建新的工作表和粘贴数据在其中,保存在一个新的工作簿中的主文件保存在同一文件夹。 我不想要新的工作表,我想要具有相同数据的新工作簿

Private Function GetWorksheet(sName As String) As Worksheet
On Error Resume Next
Dim oSh As Worksheet
Set oSh = ThisWorkbook.Worksheets(sName)
If oSh Is Nothing Then
    Set oSh = ThisWorkbook.Worksheets.Add(after:=oShM)
    oSh.Name = sName
    oShM.Rows(1).Copy Destination:=oSh.Rows(1) ' Copy header
End If
Set GetWorksheet = oSh
End Function

我不确定我是否确切知道您在寻找什么,但是,假设您希望将工作簿中的每个工作表保存为新文件,您可以尝试以下操作:

Sub CopyWorksheets()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets
    ws.Copy
    ActiveWorkbook.SaveAs ("C:\YourDirectory\" & ws.Name)
    ActiveWorkbook.Close
Next ws


End Sub

我在这里呆了很长时间,知道得更清楚。问题在哪里?我想读一些问题。我不希望人们不提问就说出他们想要什么和不想要什么。