【问题标题】:excel VBA print row based on date value基于日期值的excel VBA打印行
【发布时间】:2011-11-18 17:27:24
【问题描述】:

我正在尝试根据数据的日期从名为 Patrol 的工作表中打印一份报告。

范围 A1 包含不同的日期,但我只想打印第一行 = 到(日期 + 1)的行中的数据,即明天的日期。(打印第二天的交货详细信息)

每一行都有日期和其他 16 个单元格。下面的代码只是打印表头

Private Sub Comprintpatrol_Click()

    Range("A1").AutoFilter Field:=1, Criteria1:=Format(Date + 1, Range("A2").NumberFormatLocal)
    ActiveSheet.PrintOut
    ' or
    Range("A1").CurrentRegion.PrintOut
    Range("A1").AutoFilter
End Sub

有什么想法吗?

【问题讨论】:

  • Gerry,其他的没看,但是“日期”+1 是否应该是:today()+1?

标签: excel vba


【解决方案1】:

我认为您说“范围 A1 包含不同的日期”是错误的。我认为您的意思是“A 列包含不同的日期”。 (范围A1为单个单元格,工作表左上角的单元格)

您可以通过传递字符串“A:A”从 Range 函数中获取 a 列:Range("A:A")

【讨论】:

    【解决方案2】:

    您也可以尝试使用UsedRange 而不是CurrentRegion。后者可能很棘手,因为它在很大程度上取决于数据的设置方式(尤其是在您有空单元格的情况下)。

    类似:

    Private Sub Comprintpatrol_Click()
        Range("A1").AutoFilter Field:=1, Criteria1:=Format(Date + 1, Range("A2").NumberFormatLocal)
        ActiveSheet.PrintOut
        ' or
        ActiveSheet.UsedRange.PrintOut
        Range("A1").AutoFilter
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-10
      相关资源
      最近更新 更多