如何计算过滤行的行高总和

如何计算过滤行的行高总和

背景: 我有一张表格,它从数据库中提取数据来创建产品标签(使用索引匹配查找公式)。该表格有一个我录制的宏,可以过滤掉空白行并自动调整剩余行。(我不太熟悉 VBA,所以请原谅我的无知)

工作表: 数据填充在两列(B 和 C)和 25 行中。我需要帮助来创建一个宏,一旦输入产品编号,该宏将完成所有这些任务;过滤掉空白行并自动调整剩余行,测量剩余行的每一行的行高,并获取要显示的行高的总和(最好在单元格 B2 中)。(即“行高:64”)

非常感谢您的帮助,提前谢谢您!

答案1

使用如下过滤数据:

在此处输入图片描述

代码如下:

Sub TotalHeight()
   Dim HowTall As Long
   Dim Kount As Long
   HowTall = 0
   Kount = 0

   For i = 2 To 25
      Set r = Cells(i, "A").EntireRow
      If Not r.Hidden Then
         HowTall = HowTall + r.RowHeight
         Kount = Kount + 1
      End If
   Next i

   MsgBox Kount & vbCrLf & HowTall
End Sub

将告诉您可见行的数量以及这些行的总高度。

笔记:

高度的单位是观点,每个点为 0.013888889 英寸(100% 缩放)。假设您没有使用大屏幕作为显示器。

答案2

要以变量的形式获取高度/计数,只需快速轻松地将其放入模块中:

Public Function getHeight(rng As Range) As Long
  getHeight = rng.Height
End Function

Public Function getCount(rng As Range) As Long
  getCount = rng.SpecialCells(xlCellTypeVisible).Rows.Count
End Function

然后简单地在单元格中输入你想要输出的=getCount(B4:B25)&" "&getHeight(B2:B25)/96数量和高度...但请记住 ppi 会随着你的设置、分辨率和显示器尺寸而变化(所以你可能需要获取真正的 ppi 并更改/96,但有很多快速的方法可以做到这一点...只需查看这里或使用谷歌)

对于过滤器和自动高度的设置,只需“记录宏”即可,现在您需要以变量方式设置过滤器。要获取变量过滤器,只需在更改它时进行记录,然后将过滤器值替换为Range("A1").Value(将 A1 更改为您想要用作过滤器的任何单元格)

如果你仍然遇到问题,只需在 StackOverflow 上提问(但你需要展示你已经拥有的代码,否则他们可能会生气):P

相关内容