Excel VBA函数仅粘贴打印区域内的内容,而不是整个工作表?

Excel VBA函数仅粘贴打印区域内的内容,而不是整个工作表?,excel,vba,Excel,Vba,我正在创建一个复制/粘贴vba代码,以将我的财务模型转换为单独excel模型中的粘贴版本,并且无法确定如何仅粘贴打印区域中显示的内容。目前,它工作正常,但它粘贴了打印范围之外的所有数据,并显示隐藏在行/列中且未显示的所有数据 我似乎找不到一个函数或简单的函数来添加到已经在工作的代码中。我是VBA新手,不确定添加此功能的最佳方法 Sub Test() Dim wb As Workbook, wbPaste As Workbook, wsExhibit1 As Worksheet, wsP

我正在创建一个复制/粘贴vba代码,以将我的财务模型转换为单独excel模型中的粘贴版本,并且无法确定如何仅粘贴打印区域中显示的内容。目前,它工作正常,但它粘贴了打印范围之外的所有数据,并显示隐藏在行/列中且未显示的所有数据

我似乎找不到一个函数或简单的函数来添加到已经在工作的代码中。我是VBA新手,不确定添加此功能的最佳方法

Sub Test()

    Dim wb As Workbook, wbPaste As Workbook, wsExhibit1 As Worksheet, wsPaste As Worksheet, wsInputs As Worksheet, _
    wsExhibit2 As Worksheet

    With Application
        .ScreenUpdating = False
        .Calculation = xlCalculationAutomatic
        .EnableEvents = False
    End With

    Set wb = ThisWorkbook
    Set wbPaste = Workbooks("Copy_PasteWorkbook.xlsx")
    With wb
        Set wsExhibit1 = .Sheets("Value_Summary")
        Set wsInputs = .Sheets("Inputs")
        Set wsExhibit2 = .Sheets("Calculations")
    End With

    With wbPaste
        Set wsPaste = .Sheets.Add(after:=.Sheets(.Sheets.Count))
    End With

    With wsPaste
        wsExhibitA1.UsedRange.Copy
        .Range("A1").PasteSpecial xlPasteValues
        .Range("A1").PasteSpecial xlPasteFormats
        .Range("A1").PasteSpecial xlPasteColumnWidths
        .Name = .Cells(1, 3)
    End With

    wsInputs.Range("Selected_Calculation").Value = 1
    Do Until wsInputs.Range("Selected_Calculation").Value > wsInputs.Range("Total_Calculations").Value
        Application.Calculate
        With wbPaste
            Set wsTemp = .Sheets.Add(after:=.Sheets(.Sheets.Count))
        End With
        With wsTemp
            wsExhibit2.UsedRange.Copy
            .Range("A1").PasteSpecial xlPasteValues
            .Range("A1").PasteSpecial xlPasteFormats
            .Range("A1").PasteSpecial xlPasteColumnWidths
            .Name = .Cells(1, 3)
        End With
    wsInputs.Range("Selected_Calculation").Value = wsInputs.Range("Selected_Calculation").Value + 1
    DoEvents
    Loop
    wsInputs.Range("Selected_Calculation").Value = 1

    With Application
        .ScreenUpdating = False
        .Calculation = xlCalculationAutomatic
        .EnableEvents = False
        .CutCopyMode = False
    End With

End Sub

我希望只将工作簿中设置的打印区域内的内容粘贴到相应的页面上。不粘贴隐藏数据或范围外的数据。

Print\u区域
是一个命名范围

Sheets(“SheetName”).Range(“Print_Area”).Copy
要避免隐藏单元格,请执行以下操作:

Sheets(“SheetName”).Range(“Print_Area”).SpecialCells(xlCellTypeVisible).Copy

当然,答案很简单。谢谢你的帮助。有关于如何忽略粘贴中隐藏的行/列的提示吗?