内容已删除的打印问题

时间:2019-01-31 20:54:42

标签: excel vba

因此,我们创建了一些代码,该代码将允许用户输入多页数据,然后单击打印按钮以打印他们输入的数据页数。但是,我们遇到了一个问题:如果用户输入300行数据,然后删除最后100行,它仍然会打印300行数据,而不是200行。

有什么建议吗?

代码:

Sub LastRowInOneColumn()            
    If Range("C19") = "Enter any special posting instruction here." Then
        Range("C19:I26").ClearContents
    End If

    Dim MySheet As Worksheet
    Set MySheet = Worksheets("SIF Sheet")

    With MySheet
        Dim xFirstEmptyRow As Long
        xFirstEmptyRow = .Cells(30, 1).End(xlDown).Row
        'Application.Dialogs(xlDialogPrinterSetup).Show
        Worksheets("SIF Sheet").PrintOut
    End With    
End Sub

Sample Picture 想象一下,不是30-32,而是30-300的行填充了示例数据。然后,将第300行返回到200行故意删除(例如不需要它)。仍然打印到300行,而不是200行。

更新
我试着玩了一些其他的变体,并提出了这个建议,但是它抛出一个错误,说不能在重叠的选择上使用该命令:

Sub LastRowInOneColumn()            
    If Range("C19") = "Enter any special posting instruction here." Then
        Range("C19:I26").ClearContents
    End If

    Dim MySheet As Worksheet
    Set MySheet = Worksheets("SIF Sheet")

    Rows("30:1058").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.EntireRow.Delete

    With MySheet    
        Dim xFirstEmptyRow As Long
        xFirstEmptyRow = .Cells(30, 1).End(xlDown).Row
        'Application.Dialogs(xlDialogPrinterSetup).Show
        Worksheets("SIF Sheet").PrintOut
    End With    
End Sub

1 个答案:

答案 0 :(得分:1)

与其他人一样都这么说,清理不删除的记录,但即使你删除的行,EXCELL有时保持印刷面积在内存中。

所以我建议改由宏印务区 您可以查看https://docs.microsoft.com/en-us/office/vba/api/excel.pagesetup.printarea