Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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,我正在尝试将特定工作表从工作工作簿保存到另一个工作簿,并尝试将其保存到当前工作簿的路径中。保存选项应与dd.mm.yyyy一起保存 我尝试了下面的代码,在代码行中出现了应用程序定义的错误 > newWB.SaveAs filename:=Path2 & Format(Now(), "yyyymmdd") & > myWorksheets(i), FileFormat:=xlsx 你能帮我找出哪里错了吗 Sub save() Dim myWorksheets() A

我正在尝试将特定工作表从工作工作簿保存到另一个工作簿,并尝试将其保存到当前工作簿的路径中。保存选项应与dd.mm.yyyy一起保存

我尝试了下面的代码,在代码行中出现了应用程序定义的错误

> newWB.SaveAs filename:=Path2 & Format(Now(), "yyyymmdd") &
> myWorksheets(i), FileFormat:=xlsx
你能帮我找出哪里错了吗

Sub save()
 Dim myWorksheets() As String 'Array to hold worksheet names to copy
 Dim newWB As Workbook
 Dim CurrWB As Workbook
 Dim i As Integer
Dim path1, Path2
path1 = ThisWorkbook.Path
Path2 = path1 & "\TT"
 Set CurrWB = ThisWorkbook
 myWorksheets = Split("Report", ",")
 For i = LBound(myWorksheets) To UBound(myWorksheets) 'Go through entire array
      Set newWB = Workbooks.Add 'Create new workbook
      CurrWB.Sheets(Trim(myWorksheets(i))).Copy
      newWB.SaveAs filename:=Path2 & Format(Now(), "yyyymmdd") & myWorksheets(i), FileFormat:=xlsx
      newWB.Close saveChanges:=False
 Next i
 CurrWB.Save 'save original workbook.
 End Sub

@Jenny-此代码将完成您在问题中提出的问题,它将把活动表保存为新文件;并且可以用作在代码中调用的函数。您可以更改“Rpt”以标识新工作簿的标题。当我编写vba代码时,我总是尝试按照我母亲对我说的“保持简单”


乍一看,我会说您传递的
FileFormat
参数不正确。还请记住,您的路径需要以反斜杠结束。这可能不是全部问题,但在提出新问题之前,请将
Dim path1定义为String,path2定义为String
,通过选择有效的解决方案,总是抽出一些时间来结束你的老问题。您有太多未解决的问题。如果提供的解决方案无法解决您的问题,请始终在每个提供的解决方案下留下反馈。这是个好习惯。不遵循这一点的提问者很容易被许多专家忽视,因为他们提供的答案没有得到任何反馈。:)我会试着给你回电话
Application.DisplayAlerts = False
Dim wbPath As String
wbPath = ThisWorkbook.Path

    ActiveSheet.Copy
    ActiveWorkbook.SaveAs Filename:=wbPath & "\" & "Rpt" & " " & Format(Date, "yyyymmdd") & ".xlsx", _
    FileFormat:=51, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False

Application.DisplayAlerts = True