我在下面处理的代码中遇到错误。
Sub Pasting
Dim o as integer
Dim i as integer
Dim v as String
o = 1
i = 0
Sheets("Sample").Visible = True
Sheets("Sample").Select
Do While i < 1
Range("A:AA").Select
Selection.Copy
ActiveSheet.Next.Select
On Error Goto PE
Range("A1").Select
Application.DisplayAlerts = False
ActiveSheet.Paste
Application.DisplayAlerts = True
Loop
PE:
Application.CutCopyMode = False
Sheets("Sample").Visible = False
Sheeets("Overall").Select
v = "Sample File" & Format(DateAdd("m",1,Now), "Mmmm yyyy") & ".xlsb"
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & v
End Sub
我的错误是
Run-Time Error 1004
Method 'SaveAs' of object'_Workbook Failed.
流程是:
您将打开上个月的上一个文件
单击文件打开包含默认表格的示例表
运行循环,直到 1 到 30 的所有工作表均已使用默认数据粘贴
宏将结束循环
宏会将文件保存为与新月份相同位置的相同文件类型。
关闭文件并覆盖错误消息。
最佳答案
至少三件事
- 您应该使用工作簿名称/变量而不是 ActiveWorkbook 以避免意外使用错误的工作簿。我从你的代码中看不到 ActiveWorkbook 来自哪里。一种危险可能是它无意中成为
ThisWorkbook
。 - 如果 ThisWorkbook 尚未保存,则 ThisWorkbook.Path 将为“”,并且您将收到错误
- 您应该在保存时指定 xlsb 的文件格式(尽管如果已经是 xlsb 则不会出现错误)
VBA:
Dim v As String
v = "Sample File" & Format(DateAdd("m", 1, Now), "Mmmm yyyy") & ".xlsb"
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & v, FileFormat:=50
关于excel - 从同一位置另存为具有动态日期的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53114301/