我搜索了多个论坛,看看我是否能发现为什么一些代码不起作用但还没有找到答案。
我的VBA并不好,我继承了前任代码的这部分代码。
这部分代码使用工作表名称将每个单独的工作表保存为新工作簿。
Dim NewBook As Workbook, OldBook As Workbook, sh As Worksheet
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False
Set OldBook = ThisWorkbook
For Each sh In OldBook.Worksheets
If sh.Visible = True Then
sh.Copy
ActiveWorkbook.SaveAs Filename:="Pathway" & "\" & sh.Name, FileFormat:=xlExcel8
ActiveWorkbook.Close
End If
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
ActiveWorkbook.Close False
这样可以正常工作并为我创建工作表但我现在需要使用每个工作表(B1)中相同的单元格值添加到文件名中,所以我尝试添加到代码中。
ActiveWorkbook.SaveAs Filename:="Pathway" & "\" & sh.Range("B1").Value & sh.Name, FileFormat:=xlExcel8
但是这样做会导致“运行时错误'1004':没有活动的受保护视图窗口”但我不太确定为什么会这样?
非常感谢任何帮助。
答案 0 :(得分:1)
这可能是由于您的路径不是Windows接受的字符串作为文件名。当您将B1添加到路径时出现问题,这似乎是您的问题的根源。检查单元格B1是否包含文件名中不允许的任何字符。