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