Cao Mạnh Sơn
Tôi đồng ý
- Tham gia
- 26/11/07
- Bài viết
- 568
- Được thích
- 586
Nhờ các bác hướng dẫn có cách nào đặt cho phím tab để khi nhấn phím này thì có thể nhảy cách 1 số cột theo ý mình
Anh Hướng có thể chỉ cụ thể hơn cho tôi được không.
Thông thường trong bảng tính excel khi bấm phím tab thì nó sẽ dịch chuyển 1 ô sang bên phải.khi mình dùng phím mũi tên nó cũng có tác dụng tương tự.Trong Word thì mình có thể đặt khoảng cách giữa các tab theo ý mình.chắc là
Application.Sendkey {Tab}
nhưng phương thức này giống như gửi phím Tab cho chương trình nghĩa là nó nhãy sang ô kế cận bên phải
chắc k đúng ý đó ng hỏi: ng hỏi muốn là xử lý khi bấm phím tab?
Thông thường trong bảng tính excel khi bấm phím tab thì nó sẽ dịch chuyển 1 ô sang bên phải.khi mình dùng phím mũi tên nó cũng có tác dụng tương tự.Trong Word thì mình có thể đặt khoảng cách giữa các tab theo ý mình.
Bây giờ em muốn đặt chức năng của phím tab trong excel để khi nhấn phím này nó có thể dịch chuyển sang phải 2 hoặc nhiều ô theo mong muốn của mình.
Sub TabT()
Application.OnKey "{TAB}", "MyTab"
End Sub
Sub MyTab()
Dim Rj, Cj ,Step As Integer
Rj = ActiveCell.Row
Cj = ActiveCell.Column
Step = 2 'Muốn Tab nhảy qua mấy cột thì set giá trị tại đây
Cells(Rj, Cj + Step).Select
End Sub
Private Sub Workbook_Open()
Call TabT
End Sub
Bạn thử dùng ONKEY xem. Xem thử ví dụ sau:
Trong module cho đoạn code này vào:
Trong ThisWorkbook, cho đoạn code này vào:PHP:Sub TabT() Application.OnKey "{TAB}", "MyTab" End Sub Sub MyTab() Dim Rj, Cj ,Step As Integer Rj = ActiveCell.Row Cj = ActiveCell.Column Step = 2 'Muốn Tab nhảy qua mấy cột thì set giá trị tại đây Cells(Rj, Cj + Step).Select End Sub
Hehehe...PHP:Private Sub Workbook_Open() Call TabT End Sub
Sub MyTab()
ActiveCell.Offset(0, 2).Select ''neu mun dich 2 Ô
End Sub
Không biết 2 bác Ca_dafi và bác TigerTiger có giấu bí quyết gì nữa không nhưng em đã thử cả trong Excel2003 và 2007 đều được kết quả "như cũ". Em gửi kèm 2 file nhờ các bác ktra hộ.
Không biết 2 bác Ca_dafi và bác TigerTiger có giấu bí quyết gì nữa không nhưng em đã thử cả trong Excel2003 và 2007 đều được kết quả "như cũ". Em gửi kèm 2 file nhờ các bác ktra hộ.
thế là được,Sub MyTab()
Dim Rj, Cj, Step As Integer
Rj = ActiveCell.Row
Cj = ActiveCell.Column
Step = 2 ' Muo^'n Tab nha?y qua ma^'y co^.t thì set giá tri. ta.i ?ây
Cells(Rj, Cj + Step).Select
End Sub
Xin lỗi vì vẫn phải quay lại đề tài này.Em lại nhờ 2 bác Ca_dafi và bác TigerTiger giải thích hộ. Số là thế này:
Nếu bây giờ em mở 1 file không có VBA cho phím tab (ví dụ book1), em sử dụng bình thường tức là nhấn phím tab chỉ dich sang phải 1 ô.
mở tiếp file TigerTiger(có VBA cho phím tab),quay lại file ban đầu book1 thì khi nhấn phím tab nó sẽ dịch chuyển 2 ô giống như trong file TigerTiger(ngoài ý muốn)
chưa hết,nếu em đóng file TigerTiger lại,khi đó book1 vẫn mở thì khi nhấn phím tab lập tức file TigerTiger được mở trở lại(ngoài ý muốn thứ hai)
Nếu đóng tất cả lại và mở lại book1 thì phím tab bình thường và cũng không tự động mở file TigerTiger ra nữa.
Như vậy nếu cùng 1 lúc mà mở nhiều file trong đó có file chứa đoạn code VBA cho phím tab thì đều cùng có tác dụng như nhau và đương nhiên tất cả các file đó sẽ phải chấp nhận sự có mặt của file TigerTiger bởi vì dù có đóng lại nhưng nhấn tab lập tức được mở ra liền
Kể ra cũng "hay" nhưng em không hiểu.Nhờ các bác lần nữa giúp đỡ vấn đề này
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Application.OnKey "{TAB}", "MyTab"
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Application.OnKey "{TAB}"
End Sub
đúng như ca_dafi nói bạn làm như thế đi
tôi test rùi, thấy
+ File tigertiger.xls chạy tốt
+ File cada_fi.xls thì bị lỗi, tại dòng
Step = 2 Muo^'n Tab nha?y qua ma^'y co^.t thì set giá tri. ta.i ?ây
(do bạn copy mất dấu - vì đặt trong phần php CODE, lần sau đánh 2 dấu ('') lun trong đó cada_fi ah như bài trên của tôi nhé)
giờ bạn chỉ thêm dấu đỏ sau là OK
Step = 2 ' Muo^'n Tab nha?y qua ma^'y co^.t thì set giá tri. ta.i ?ây
thế là được,
----------------------------------------------------------------------------------------------------------------------------
Sub MyTab()
Dim Rj, Cj, Step As Integer
Rj = ActiveCell.Row
Cj = ActiveCell.Column
Step = 2 ' "so buoc nhay den cell"
Cells(Rj, Cj + Step).Select
End Sub
------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
Sub MyTab()
ActiveCell.Offset(0, 2).Select ''neu mun dich 2 Ô
End Sub
--------------------------------------------------------------------------------------------------------------------------
Bạn xem các ví dụ này là hiểu ngay đây là phương thức của cell, range,...còn hàm này thì em chưa hiểu lắm chạy nhanh như thế nào nhờ các pác chỉ hộ em với!
Offset(0, 2)
Lâu lâu làm pác một bữa nha: Ví dụ bài dưới đấy anh ongtrungducmx25:chưa hiểu lém pác cho vú dụ cụ thể nhé.
Anh cứ lần lượt thay vào: Offset(0,2) bằng :Sub MyTab()
ActiveCell.Offset(0, 2).Select
End Sub
Các bác ơi cho em hỏi: trong Excel, em gõ nút "Tab" nó không nhảy sang cột tiếp theo mà nó cách tới mấy cột liền, rất bất tiện. Bác nào biết giúp em với.
sửa thành
Sub MyTab()
ActiveCell.Offset(0, -4).Select
End Sub