【问题标题】:How to set print area to last visible text in row and column?如何将打印区域设置为行和列中的最后一个可见文本?
【发布时间】:2021-01-19 07:54:58
【问题描述】:

工作表有 100 行和大约 150 列。

在任何给定时间,其中只有 20/40 是可见的。

CTRL+UP 表示行 = 100(行)

Ctrl+LEFT = CS(列)

有没有办法让 VBA 只为可见的 rows.columns 设置打印区域?

我无法弄清楚动态名称范围打印区域功能,但提前谢谢你。

Worksheets("Sheet1").PageSetup.PrintArea = Range("B:H").Address

这是一个有效的相邻设置打印区域,范围将是 A1:到具有可见数据的最后一行/列。

提前谢谢你。

【问题讨论】:

标签: vba


【解决方案1】:

试试这个:

看看我如何找到最后一列和最后一行,然后构建范围

Public Sub PrintRange()
    
    Dim targetSheet As Worksheet
    Set targetSheet = ThisWorkbook.Worksheets("Sheet1")
    
    Dim lastRow As Long
    lastRow = targetSheet.Cells(targetSheet.Rows.Count, "A").End(xlUp).Row
    
    Dim lastColumn As Long
    lastColumn = targetSheet.Cells(1, targetSheet.Columns.Count).End(xlToLeft).Column
    
    Dim printRange As Range
    Set printRange = targetSheet.Range("A1", targetSheet.Cells(lastRow, lastColumn))
    
    targetSheet.PageSetup.PrintArea = printRange.Address
    
End Sub

【讨论】:

  • 我添加了以下内容:targetSheet.PageSetup.PrintArea = printRange.address
  • 这适用于行,但不适用于列,但我距离我所在的位置 10 步
  • 已修复。数据从哪一行开始?
  • 第 1 行是数据的第一列
  • 检查调试。在这里打印myonlinetraininghub.com/debugging-vba-code
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-19
  • 2011-11-14
  • 1970-01-01
  • 2016-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多