按单元格值和工作表名称失败,将多个Excel工作表保存为单个工作簿?

时间:2015-06-23 11:23:30

标签: excel vba excel-vba

我搜索了多个论坛,看看我是否能发现为什么一些代码不起作用但还没有找到答案。

我的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':没有活动的受保护视图窗口”但我不太确定为什么会这样?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

这可能是由于您的路径不是Windows接受的字符串作为文件名。当您将B1添加到路径时出现问题,这似乎是您的问题的根源。检查单元格B1是否包含文件名中不允许的任何字符。