VBA trả về vị trí cell hiện hành
Chào các anh chị. Em thường ngày phải làm việc với nhiều bảng tính khác nhau. Trong quá trình làm việc có phát sinh một yêu cầu quan trọng nhắm tối giản công thức mà em không thể nào làm nổi.
Em có một bảng tính với dữ liệu được nhập tại bất kỳ vị trí nào. Em muốn tạo một hàm nhằm truy vấn vị trí của ô hiện hành (tức ô mà con trỏ đang nằm tại đó. Nó cũng tương tự như name box ở trên cùng bên trái mỗi bảng tính vậy, tức là cứ mỗi khi mình di chuyển con trỏ thì name box sẽ hiện thị vị trí tương ứng.
Em đang cần một hàm có tính năng như thế, và có viết vào một cell bất kỳ và trả về kết quả như một hàm excel bình thường vậy!
Có bác nào giúp em với! Em cảm ơn.
Thử với cái này xem sao:
Selection.Address
Nó chỉ trả về kết quả tĩnh. Em muốn nó thay đổi kế quả như dòng name box cơ!
Mục đích của bạn để làm gì…Trong khi đã có hộp thoại Name Box trên góc rồi….Tại sao không nhìn lên…
Nếu bạn cứ chuyển chuột mà cần hiện ra như MsgBox…thì bạn phải xài sự kiện cho tất cả Cell của sheet…Mỗi lần di chuyển thì nó lại show lên, giựt giựt…vậy nhứt mắt sao chịu được…???
Thì mình đã nói do có vấn đề phát sinh nên cần như vậy. Vị trí trong name box thì tất nhiên mình biết nhưng không thể dùng nó để tính toán được.
Do yêu cầu công việc nên có rất nhiều công thức nếu được tính theo vị trí của ô hiện hành thì sẽ rất nhanh (kể ra rất dài dòng).
Mình cũng đã lục tung google và nó cũng ra kết quả là hiển thị bằng msgBox. Liệu có cách nào nó chạy nhẹ nhàng như một hàm bình thường thôi được không?
Thực chất, mình vẫn đang tính toán các file này bằng các công thức thủ công. Tất nhiên mất rất nhiều time, trong quá trình tính toán thì mình phát hiện ra nếu tham chiếu dữ liệu dựa theo vị trí ô hiện hành thì sẽ cho kết quả nhanh hơn.Đây mới chỉ ở dạng "ý tưởng", mình đã xem xét hết các kết quả google và đều không đáp ứng được "ý tưởng" này. Hết cách mình mới lập thớt này mong cao nhân vào giúp đỡ.
Tất nhiên, nếu có thể thì mình đã gửi các file cần giúp đỡ rồi nhưng vì lý do công việc và cá nhân mình không được phép!
Bỏ code này vô 1 sheet nào đó rồi chọn thử xem.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox Selection.Address
End Sub
www.giaiphapexcel.com/diendan/threads/vba-tr%E1%BA%A3-v%E1%BB%81-v%E1%BB%8B-tr%C3%AD-cell-hi%E1%BB%87n-h%C3%A0nh.113301/
Thiết kế Tổng đãi ngộ (Total Rewards) theo khung SHRM
Khóa học “Thiết kế Tổng phần thưởng (Total Reward) chuẩn khung SHRM” giúp bạn nắm vững toàn bộ hệ thống đãi ngộ theo chuẩn...
Xem khóa học
One Response