我遇到这个问题。我正在尝试粘贴一个范围,该范围根据用户表单中的选择而变化到新工作簿。粘贴不起作用。我得到了反馈,我需要消除活动表的使用,并命名具体的目标工作簿。如果它是一个新的工作簿,我不知道如何命名它。我也不知道如何将其保存到用户桌面。
无论如何。代码在这里失败(第1行):
Workbooks("Restaurant Manager -Master.xlsx").Worksheets(wsexport).Activate
Workbooks("Restaurant Manager -Master.xlsx").Worksheets(wsexport).Unprotect
Workbooks("Restaurant Manager -Master.xlsx").Worksheets(wsexport).Range("BA6::BT200").Copy
下面是完整的代码,因此您可以看到我尝试采取的操作 - 从userform cboExportInvoiceWeek传递工作表名称变量。理想情况下,用户单击一个按钮并创建一个新的csv文件。我唯一的变量是工作表(一年中每周一个)。单元格值是静态的。
同样,我的问题是实际粘贴到新工作簿中。
Private Sub cmbInvoicesExport_Click()
Application.ScreenUpdating = False
Dim CurrentFileName As String
CurrentFileName = ActiveWorkbook.Name
Debug.Print "Active File: " + CurrentFileName
Dim wsexport As String
wsexport = cboExportInvoiceWeek.Value
Workbooks("Restaurant Manager -Master.xlsx").Worksheets(wsexport).Activate
Workbooks("Restaurant Manager -Master.xlsx").Worksheets(wsexport).Unprotect
Workbooks("Restaurant Manager -Master.xlsx").Worksheets(wsexport).Range("BA6::BT200").Copy
Set NewBook = Workbooks.Add
NewBook.Worksheets("Sheet1").Range("A1").PasteSpecial (xlPasteValues)
NewBook.SaveAs Filename:=NewBook.Worksheets("Sheet1").Range("E3").Value
Application.DisplayAlerts = False
Application.DisplayAlerts = True
Application.CutCopyMode = False
Workbooks(CurrentFileName).Activate
Application.ScreenUpdating = True
End Sub
一般来说:我会在每个可疑步骤后检查err.number。详情如下:
在这里查看更多信息:enter link description here