VBA复制和粘贴错误

VBA复制和粘贴错误,vba,excel,Vba,Excel,这是一个小小的错误,但我想不出来。我有一个vba脚本,它正在复制和粘贴两个项目。除了最后一个,它对所有的都有效。错误是 无法粘贴信息,因为复制区域和粘贴 面积大小和形状不同。请尝试以下操作之一: 单击单个单元格,然后粘贴 选择一个大小和形状相同的矩形,然后粘贴 代码如下: Sub MakePropertyPage(propertyNum, aFile) Dim sheetName As String sheetName = "Prop " & propertyNum 'OPENS IN

这是一个小小的错误,但我想不出来。我有一个vba脚本,它正在复制和粘贴两个项目。除了最后一个,它对所有的都有效。错误是

无法粘贴信息,因为复制区域和粘贴 面积大小和形状不同。请尝试以下操作之一:

  • 单击单个单元格,然后粘贴
  • 选择一个大小和形状相同的矩形,然后粘贴
  • 代码如下:

    Sub MakePropertyPage(propertyNum, aFile)
    Dim sheetName As String
    sheetName = "Prop " & propertyNum
    
    'OPENS INDIVIDUAL WORKBOOKS TO PULL IN INPUT INFORMATION
    Workbooks.Open Filename:=vpath & ThisWorkbook.Path & "\" & aFile & ".xlsb",                 UpdateLinks:=False, ReadOnly:=True
    
    Dim sourceRangeAsString As String, dest As Range, clearArea As Range
    Dim sheetToEdit As Worksheet
    Set sheetToEdit = ThisWorkbook.Sheets(sheetName)
    
    Set clearArea = sheetToEdit.Range("AL100:CC900")
    clearArea.Delete
    
    sourceRangeAsString = "RentRoll"
    Set dest = sheetToEdit.Range("AL100")
    Call CopyAndPaste(Workbooks(aFile & ".xlsb"), sourceRangeAsString, dest)
    
    sourceRangeAsString = "Underwriting"
    Set dest = sheetToEdit.Range("AL300")
    Call CopyAndPaste(Workbooks(aFile & ".xlsb"), sourceRangeAsString, dest)
    
    sourceRangeAsString = "Projections"
    Set dest = sheetToEdit.Range("AL400")
    Call CopyAndPaste(Workbooks(aFile & ".xlsb"), sourceRangeAsString, dest)
    
    sourceRangeAsString = "RolloverCalculations"
    dest = sheetToEdit.Range("AL500")
    Call CopyAndPaste(Workbooks(aFile & ".xlsb"), sourceRangeAsString, dest)
    
    
    
    'Close the workbook now that we are done with it
    Workbooks(aFile & ".xlsb").Close savechanges:=False
    End Sub
    
    Sub CopyAndPaste(sourceFile, sourceRangeAsString, dest)
        Set source = sourceFile.Names(sourceRangeAsString).RefersToRange
        source.Copy
        dest.PasteSpecial (xlPasteValues)
        source.Copy
        dest.PasteSpecial (xlPasteFormats)
    End Sub
    

    您缺少一个
    集合

    dest = sheetToEdit.Range("AL500")
    

    您缺少一个
    集合

    dest = sheetToEdit.Range("AL500")