Di chuyển qua dòng bị ẩn. (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

bun_bo_hue

Thành viên chính thức
Tham gia
31/12/09
Bài viết
78
Được thích
11
Em có 1 bài toán sau (chi tiết vui lòng xem file đính kèm giúp ạ) :

-Di chuyển cell từ A4 qua A11 vẫn bình thường dù cell A5->A10 có bị HIDE.

-Nếu bắt sự kiện phím UP, DOWN theo macro sau thì cell sẽ di chuyển vô dòng bị HIDE --> có cách nào để cell di chuyển như bình thường không?

Sub Key_DOWN() 'tương tự với Key_UP
activecell.offset(1,0).active
activewindow.smallscroll down:=1
end sub
 

File đính kèm

Em có 1 bài toán sau (chi tiết vui lòng xem file đính kèm giúp ạ) :

-Di chuyển cell từ A4 qua A11 vẫn bình thường dù cell A5->A10 có bị HIDE.

-Nếu bắt sự kiện phím UP, DOWN theo macro sau thì cell sẽ di chuyển vô dòng bị HIDE --> có cách nào để cell di chuyển như bình thường không?

Sub Key_DOWN() 'tương tự với Key_UP
activecell.offset(1,0).active
activewindow.smallscroll down:=1
end sub
Chỉ có nước vầy thôi
PHP:
Sub Key_DOWN()
  Do
    ActiveCell.Offset(1, 0).Select
  Loop Until ActiveCell.EntireRow.Hidden = False
End Sub
Nhưng xin hỏi: BẠN MUỐN LÀM ĐIỀU GÌ? SELECT để làm cái gì?
 
Upvote 0
Hehe, lại fải cám ơn bác NDU trả lời.

Mục đích của em rất đơn giản, em muốn khi di chuyển cell lên họăc xuống thì màn hình đc cuốn theo tương ứng (lên họăc xuống thôi). Chính vì vậy trong macro mới có câu lệnh này "activewindow.smallscroll down:=1".

Nếu làm vòng lặp như bác chỉ thì có chậm kô ta. Em chỉ sợ nó chậm thôi :-(.

Chỉ có nước vầy thôi
PHP:
Sub Key_DOWN()
  Do
    ActiveCell.Offset(1, 0).Select
  Loop Until ActiveCell.EntireRow.Hidden = False
End Sub
Nhưng xin hỏi: BẠN MUỐN LÀM ĐIỀU GÌ? SELECT để làm cái gì?
 
Upvote 0
Hehe, lại fải cám ơn bác NDU trả lời.

Mục đích của em rất đơn giản, em muốn khi di chuyển cell lên họăc xuống thì màn hình đc cuốn theo tương ứng (lên họăc xuống thôi). Chính vì vậy trong macro mới có câu lệnh này "activewindow.smallscroll down:=1".

Nếu làm vòng lặp như bác chỉ thì có chậm kô ta. Em chỉ sợ nó chậm thôi :-(.
Sợ chậm thì Application.Sendkeys đi
Ah... mà sao không dùng thế này nhỉ?
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Application.Goto Target, True
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn bác NDU. Bác cho em 1 ví dụ đơn giản về sendkeys được không ạ. Em không rành lắm.
Là dùng code "bấm bàn phím" thay cho bạn
Ví dụ thế này:
PHP:
Sub Test()
  Application.SendKeys "{DOWN}"
End Sub
Nhưng SendKeys trong trường hợp này cũng có hạn chế, ít nhất bạn phải active 1 cell nào đó trên bảng tính thì code mới chạy được (chẳng hạn bạn đang mở UserForm thì code trên hoàn toàn không có ý nghĩa)
 
Upvote 0
Em thử áp dụng code của bác vô file. Không hiểu sao nó chạy mà không dừng luôn. Bác vui lòng xem code giúp em không bít có lỗi j không ạ.

Cám ơn bác nhiều.

Là dùng code "bấm bàn phím" thay cho bạn
Ví dụ thế này:
PHP:
Sub Test()
  Application.SendKeys "{DOWN}"
End Sub
Nhưng SendKeys trong trường hợp này cũng có hạn chế, ít nhất bạn phải active 1 cell nào đó trên bảng tính thì code mới chạy được (chẳng hạn bạn đang mở UserForm thì code trên hoàn toàn không có ý nghĩa)
 

File đính kèm

Upvote 0
Em thử áp dụng code của bác vô file. Không hiểu sao nó chạy mà không dừng luôn. Bác vui lòng xem code giúp em không bít có lỗi j không ạ.

Cám ơn bác nhiều.
Ai biểu bạn dùng sự kiện Workbook_Open chi nên nó bị "rối"
Thế bạn đã dùng code tôi đưa ở trên chưa:
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Application.Goto Target, True
End Sub
 
Upvote 0
Em có đưa hàm sendkey vô mà. Trước tiên em bắt sự kiện UP, sau đó gán vô hàm Key_UP có sendkey của bác --> nó đứng luôn.

Nếu áp dụng thêm code bên dưới thì đưa vô file của em hoàn chỉnh là sao vậy bác ???

Ai biểu bạn dùng sự kiện Workbook_Open chi nên nó bị "rối"
Thế bạn đã dùng code tôi đưa ở trên chưa:
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Application.Goto Target, True
End Sub
 
Upvote 0
Em có đưa hàm sendkey vô mà. Trước tiên em bắt sự kiện UP, sau đó gán vô hàm Key_UP có sendkey của bác --> nó đứng luôn.

Nếu áp dụng thêm code bên dưới thì đưa vô file của em hoàn chỉnh là sao vậy bác ???
Trời đất... lý nào bạn không biết sự kiện Worksheet_SelectionChange đương nhiên phải đưa vào trong sheet?
???
Mục đích cuối cùng của bạn là CUỘN MÀN HÌNH THEO ACTIVECELL ---> Vậy thì ta cứ cuộn... cần gì phải bắt sự kiện Key_Up, Key_Down gì gì đó cho nó rối
 

File đính kèm

Upvote 0
Sac. Bác NDU hiểu lầm ý em. Em có đính kèm file là code gốc ban đầu em làm. Bác thử dùng phím di chuyển lên xuống, sẽ thấy màn hình scroll theo tương ứng rất tiện. Ý em là vậy.

Trời đất... lý nào bạn không biết sự kiện Worksheet_SelectionChange đương nhiên phải đưa vào trong sheet?
???
Mục đích cuối cùng của bạn là CUỘN MÀN HÌNH THEO ACTIVECELL ---> Vậy thì ta cứ cuộn... cần gì phải bắt sự kiện Key_Up, Key_Down gì gì đó cho nó rối
 

File đính kèm

Upvote 0
Sac. Bác NDU hiểu lầm ý em. Em có đính kèm file là code gốc ban đầu em làm. Bác thử dùng phím di chuyển lên xuống, sẽ thấy màn hình scroll theo tương ứng rất tiện. Ý em là vậy.
Thế thì dùng Do... Loop vậy
Trò chơi này chỉ để... cho vui tôi chứ có thấy TIỆN gì đâu chứ
 
Upvote 0
Em có 1 bài toán sau (chi tiết vui lòng xem file đính kèm giúp ạ) :

-Di chuyển cell từ A4 qua A11 vẫn bình thường dù cell A5->A10 có bị HIDE.

-Nếu bắt sự kiện phím UP, DOWN theo macro sau thì cell sẽ di chuyển vô dòng bị HIDE --> có cách nào để cell di chuyển như bình thường không?

Sub Key_DOWN() 'tương tự với Key_UP
activecell.offset(1,0).active
activewindow.smallscroll down:=1
end sub

Hôm nay mình cũng gặp khó khăn ở vấn đề này.
Lâu lắm rồi nhưng mình tìm được nên share lại, cho bạn nào sau này tìm tiếng việt

Mình dùng code này:
Dim rng As Range
Set rng = Range(Cells(ActiveCell.Row + 1, ActiveCell.Column), Cells(Rows.Count, ActiveCell.Column))
rng.SpecialCells(xlCellTypeVisible).Cells(1).Select
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom