Code auto chuyển đến dòng cuối và hiển thị 10 dòng cuối cùng có dữ liệu sheet

Liên hệ QC

phongkiemtinh

Thành viên thường trực
Tham gia
22/7/09
Bài viết
224
Được thích
5
Không biết diễn đán có cách nào code khi kích hoạt sheet thì tự động chuyển xuống hiển thị trên màn hình xem là 10 dòng dữ liệu cuối cùng trong sheet không.
Nhờ các cao thù GPE chỉ giúp.
 
Không biết diễn đán có cách nào code khi kích hoạt sheet thì tự động chuyển xuống hiển thị trên màn hình xem là 10 dòng dữ liệu cuối cùng trong sheet không.
Nhờ các cao thù GPE chỉ giúp.
Code thế này vậy:
PHP:
Private Sub Worksheet_Activate()
    ActiveWindow.ScrollRow = Cells.Find("*", SearchDirection:=2).Row - 9
End Sub
 
Upvote 0
Code thế này vậy:
PHP:
Private Sub Worksheet_Activate()
    ActiveWindow.ScrollRow = Cells.Find("*", SearchDirection:=2).Row - 9
End Sub

Có thêm vùng chỉ định được không bác? ví dụ chỉ tính dữ liệu trong vùng [A3: M100] thôi, còn dữ liệu ngoìa vùng này nằm tới đâu cũng không tính, vì e có 1 số vùng nằm ngoài có công thức thì code sẽ nhảy tới cuối cùng mất.
 
Upvote 0
Có thêm vùng chỉ định được không bác? ví dụ chỉ tính dữ liệu trong vùng [A3: M100] thôi, còn dữ liệu ngoìa vùng này nằm tới đâu cũng không tính, vì e có 1 số vùng nằm ngoài có công thức thì code sẽ nhảy tới cuối cùng mất.
Vậy thì chỉ cần thay Cells bởi [A3:M100] là được thôi.
Code trên tôi viết rất thô sơ, chưa tính đến trường hợp chỉ có dưới 10 hàng có dữ liệu hoặc thậm chí sheet trống trơn, không có ô nào có dữ liệu.
Bạn thay code trên bởi code sau cho chắc nhé:
[GPECODE=vb]Private Sub Worksheet_Activate()
Dim Cll As Range, lRow As Long
On Error Resume Next
Set Cll = [A3:M100].Find("*", SearchDirection:=2)
If Cll Is Nothing Then
lRow = 3
Else
lRow = WorksheetFunction.Max(Cll.Row - 9, 3)
End If
ActiveWindow.ScrollRow = lRow
On Error GoTo 0
End Sub[/GPECODE]
 
Upvote 0
Vậy thì chỉ cần thay Cells bởi [A3:M100] là được thôi.
Code trên tôi viết rất thô sơ, chưa tính đến trường hợp chỉ có dưới 10 hàng có dữ liệu hoặc thậm chí sheet trống trơn, không có ô nào có dữ liệu.
Bạn thay code trên bởi code sau cho chắc nhé:
[GPECODE=vb]Private Sub Worksheet_Activate()
Dim Cll As Range, lRow As Long
On Error Resume Next
Set Cll = [A3:M100].Find("*", SearchDirection:=2)
If Cll Is Nothing Then
lRow = 3
Else
lRow = WorksheetFunction.Max(Cll.Row - 9, 3)
End If
ActiveWindow.ScrollRow = lRow
On Error GoTo 0
End Sub[/GPECODE]
Cảm ơn bác nhiều.
 
Upvote 0
Web KT
Back
Top Bottom