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