Bạn có thể sử dụng hàm dưới đây và không bao giờ cần viết thêm mã nữa, chỉ cần nhập hàm:
Khi nhập giá trị này, hàm này trống, bạn cần nhấn CTRL+` để hiển thị công thức.
Lưu mã hóa vào một mô-đun mới trong dự án của bạn. Và lưu lại dưới dạng xlsm, xlsb, xls, xlam, xla.
[MÃ=javascript]
Tùy chọn rõ ràng
#Nếu VBA7 Thì
Khai báo riêng tư PtrSafe Hàm SetTimer Lib "user32" (ByVal hwnd As LongPtr, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr) As LongPtr
Khai báo riêng tư PtrSafe Hàm KillTimer Lib "user32" (ByVal hwnd As LongPtr, ByVal nIDEvent As Long) As Long
#Khác
Riêng tư Enum LongPtr: [_]:End Enum
Khai báo riêng tư Hàm SetTimer Lib "user32" (Theo giá trị hwnd là dài, Theo giá trị nIDEvent là dài, Theo giá trị uElapse là dài, Theo giá trị lpTimerFunc là dài) là dài
Khai báo riêng tư Hàm KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
#Kết thúc nếu
Dim rgCheck As Range, lStartRow&, tRows&
Hàm HideRow(RangeCheck As Range, startRow&, Tùy chọn totalRows& = 100)
Đặt rgCheck = RangeCheck(1, 1): lStartRow = startRow: tRows = totalRows
Ẩn hàng = vbNullString
SetTimer Application.hwnd, 0, 10, Địa chỉ của ProcTimer_HideRow
Chức năng kết thúc
Riêng tư Sub ProcTimer_HideRow(ByVal hwnd As LongPtr, ByVal wMsg As Long, ByVal idEvent As Long, ByVal dwTime As LongPtr)
Trên Lỗi Tiếp Tục Tiếp Theo
KillTimer hwnd, idEvent
Nếu rgCheck không có gì thì thoát Sub
Làm mờ v, sh: v = rgCheck.Value
Đặt sh = rgCheck.Parent:
Nếu tRows = 0 thì tRows = sh.UsedRange.Rows.Count - lStartRow + 1
Nếu tRows < 0 thì tRows = sh.Rows.Count - lStartRow + 1
sh.Range(lStartRow & ":" & CStr(lStartRow + tRows - 1)).EntireRow.Hidden = False
Nếu v = Rỗng hoặc Không IsNumeric(v) Thì
Khác
Nếu v < tRows thì sh.Range(CStr(lStartRow + v) & ":" & CStr(lStartRow + tRows - 1)).EntireRow.Hidden = True
Kết thúc nếu
Đặt rgCheck = Không có gì
Kết thúc Sub
[/MÃ SỐ]