尝试保存工作表时,粘贴Range类的特殊方法失败错误

时间:2019-08-08 15:11:15

标签: excel vba

我正在尝试复制工作表数据并将其保存在新工作表中,而不从原始工作表(shtAnalysis)复制基础公式。出现错误时,我无法执行此操作:

  

Range类的粘贴特殊方法失败

行中的

wsPaste.UsedRange.PasteSpecial xlPasteValues

Public Sub PrepareFileAttachment()
    Application.CalculateFull
    Dim wrkBook As Workbook, wsPaste As Worksheet
    Dim Path As String
    Set wrkBook = Workbooks.Add
    Set wsPaste = wrkBook.Worksheets(1)
    Path = "C:\RandomPath" & "\" & "Report" & Format(Now, "mmddyyyy")
    shtAnalysis.Copy
    wsPaste.Activate
    wsPaste.UsedRange.PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    Application.ActiveWorkbook.SaveAs filename:=Path, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    shtControl.Range(GENERATED_FILENAME).Value = Path & ".xlsx"
    ActiveWindow.Close
End Sub

2 个答案:

答案 0 :(得分:0)

Avoid the ActivateUsed.Range,因此,请更改以下几行:

shtAnalysis.Copy
wsPaste.Activate
wsPaste.UsedRange.PasteSpecial xlPasteValues

这些:

shtAnalysis.Copy
wsPaste.PasteSpecial xlPasteValues

原始代码试图复制整个工作表shtAnalysis,但是只允许将其粘贴到UsedRange中,这是VBA不喜欢的。

答案 1 :(得分:0)

请尝试一下

Public Sub PrepareFileAttachment()
    Application.CalculateFull
    Dim wrkBook As Workbook, wsPaste As Worksheet
    Dim openedWorkbook As Workbook
    Dim Path As String
    Set openedWorkbook = ThisWorkbook
    Set wrkBook = Workbooks.Add
    Set wsPaste = wrkBook.Worksheets(1)
    Path = "C:\RandomPath" & "\" & "Report" & Format(Now, "mmddyyyy")
    openedWorkbook.Sheets("shtAnalysis").Copy
    wsPaste.Activate
    wsPaste.PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    Application.ActiveWorkbook.SaveAs Filename:=Path, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    shtControl.Range(GENERATED_FILENAME).Value = Path & ".xlsx"
    ActiveWindow.Close
End Sub