复制新工作区中的工作表并使用VBA保存

Cla*_*dio 1 excel vba excel-vba

我编写了这段代码,该代码通过数据验证列表并在新工作簿中复制工作表.我想保存它,但我不能t. The loop doesn给我一个错误,并继续复制和粘贴新的工作簿,但它实际上从来没有在我设置的目录中保存工作簿的副本

Dim ValidationList As Range
Set ValidationList = Range("BF1:BF13")
VCount = ValidationList.Count


For i = 1 To VCount
FolderPath = "C:\Users\A734810\Desktop\Efficiency"
namesheet = Cells(i, 58)
Path = FolderPath & namesheet & "\*.xlsx"
Filename = Dir(Path)

Range("A8") = Cells(ValidationList(i).Row, ValidationList.Column)

ThisWorkbook.Sheets("Professionals comparative").Copy
ActiveWorkbook.SaveCopyAs Filename:=Filename

Next
Run Code Online (Sandbox Code Playgroud)

Sid*_*out 5

Path = FolderPath & namesheet & "\*.xlsx"
Run Code Online (Sandbox Code Playgroud)

以上是正确的,如果单元格Cells(i, 58)\和我猜你有一个"\"因为你的帖子你没有得到任何错误

问题出在这里

ActiveWorkbook.SaveCopyAs Filename:=Filename
Run Code Online (Sandbox Code Playgroud)

文件正在保存但不在您认为的位置;)

Filename只是有文件的名称.您需要将其更改为

ActiveWorkbook.SaveCopyAs Filename:=FolderPath & namesheet & "\" & Filename
Run Code Online (Sandbox Code Playgroud)