iloveit
Thành viên thường trực




- Tham gia
- 2/3/13
- Bài viết
- 212
- Được thích
- 52
- Giới tính
- Nam
- Nghề nghiệp
- Tự do
Nhờ anh chị và các bạn giúp tôi viết dòng code như sau: Khi ta nhấp chuột vào tiêu đề của cột nào thì sẽ tự chọn cell cuối có dữ liệu trong cột đó. Khi nhấp lần nữa thì lại chọn cell đầu có dữ liệu trong cột đó.
Cám ơn mọi người.
Mục đích CHỌN vậy để mần chi? Để nhìn chơi thôi à?
Chả cần code kiếc gì sất tại tiêu đề cột nào ấn Ctrl + mũi tên xuống để tìm dòng cuối có dữ liệu. Sau đó ấn Ctrl + mũi tên lên để trở về dòng đầu. HếtKhông anh. Vì dữ liệu em rất nhiều cột (tầm 27 cột) mà trong mỗi cột thì có cột dữ liệu ít khoảng vài dòng, có cột dữ liệu rất nhiều khoảng vài chục dòng cho nên mới có nhu cầu trên. Mục địch là xuống dòng cuối cho nhanh tại cột đó và di chuyển nhanh về dòng đầu trong cột đó.
Chả cần code kiếc gì sất tại tiêu đề cột nào ấn Ctrl + mũi tên xuống để tìm dòng cuối có dữ liệu. Sau đó ấn Ctrl + mũi tên lên để trở về dòng đầu. Hết
Option Explicit
Dim Dòng As Long
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Dòng = 0 Then Dòng = 255
If Not Intersect(Target, Range([A2], [A2].End(xlToRight))) Is Nothing Then
Cells(Cells.Rows.Count, Target.Column).End(xlUp).Select
Dòng = Target.Column
ElseIf Target.Column = Dòng Then
Cells(2, Dòng).Select
Dòng = 255
End If
End Sub
Mục đích CHỌN vậy để mần chi? Để nhìn chơi thôi à?
Người ta làm yêu cầu này là vì mới nghĩ ra thôi, chưa kịp suy cho chính chắn hậu quả của nó.
1. Chỉ vì lười biếng bấm phím mà phải mang một cái macro sự kiện. Vừa không thể save file dang xlsx, vừa bị mấy cái hệ thống đòi hỏi mở macro này nọ, vừa tốn năng lươn bắt sự kiện.
2. Quan trọng hơn, sau khi gắn cái macro bắt sự kiện rồi, mỗi lần click đâu đó lại phải coi chừng có chuyện xảy ra bất ngờ.
1. File thực tế còn nhiều macro khác nên chắc chắn k thể lưu dạng xlsx được rồi.
Nếu CSDL không chuẩn thì nên xài macro sự kiện này, thử xem:
PHP:Option Explicit Dim Dòng As Long Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Dòng = 0 Then Dòng = 255 If Not Intersect(Target, Range([A2], [A2].End(xlToRight))) Is Nothing Then Cells(Cells.Rows.Count, Target.Column).End(xlUp).Select Dòng = Target.Column ElseIf Target.Column = Dòng Then Cells(2, Dòng).Select Dòng = 255 End If End Sub
Khi nhấp vào tiêu đề, chọn dòng cuối. Muốn trở lại dòng đầu thì lại nhấp vào tiêu đề. Phải không?
Rất tiếc, nếu có vài chục dòng thì lúc xuống dòng cuối, cái tiêu đề bị cuốn mất rồi, lấy đâu mà nhấp nữa.