如何計算篩選行的行高總和

如何計算篩選行的行高總和

背景: 我有一張表,可以從資料庫中提取資料來建立產品標籤(使用索引匹配查找公式)。該工作表有一個我記錄的宏,它可以過濾掉空白行並自動調整剩餘的行。 (我對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

會告訴您可見行的數量以及這些行的總高度。

筆記:

高度的單位是a觀點,每個點是 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

相關內容