将工作表从一个工作簿复制到另一个工作簿时发生错误

时间:2018-08-30 02:51:24

标签: excel vba excel-vba

我的vba代码遇到以下错误。

运行时错误'1004': 工作表类的复制方法失败

Public Sub ExportAsCSV(savePath)
    Set ws = Workbooks("OND Estimator").Worksheets("port")  'Sheet to export as CSV
    Set wb = Application.Workbooks.Add
    ws.Copy Before:=wb.Worksheets(wb.Worksheets.Count)

    Application.DisplayAlerts = False                       'Possibly overwrite without asking
    wb.SaveAs Filename:=savePath, FileFormat:=xlCSV
    Application.DisplayAlerts = True
    wb.Close savechanges:=False
End Sub

3 个答案:

答案 0 :(得分:3)

只需将工作表复制到任何位置。这将创建一个具有单个工作表(原始副本)的新活动工作簿,准备将其另存为xlCSV。

parse(self, response)

答案 1 :(得分:1)

尝试

Public Sub ExportAsCSV(savePath)
    Application.DisplayAlerts = False    'Possibly overwrite without asking

    With Workbooks("OND Estimator").Worksheets("port").Parent
        .SaveAs Filename:=savePath, FileFormat:=xlCSV
        .Close savechanges:=False
    End With
    Application.DisplayAlerts = True
End Sub

答案 2 :(得分:0)

我发现了这个问题!我没有意识到隐藏工作表会导致复制方法无法正常工作...

Worksheets("port").Visible = xlVeryHidden

...所以我要做的是在复制之前先揭露了工作表,然后在复制完成后再次隐藏。

Worksheets("port").Visible = True

谢谢你们对我的帮助!