Thầy cho em hỏi em viết đoạn code này sao nó cứ đánh số ngược không ạ
Ý là em muốn đánh số tự động khi có dữ liệu ạ
Sub Autonumber()
lr = Cells(Rows.Count, ActiveCell.Column + 1).End(xlUp).Row
ActiveCell.Offset(-1).Value = "STT"
Range(ActiveCell, Cells(lr, ActiveCell.Column)).FormulaR1C1 = "=row()-" & ActiveCell.Offset(-1).Row
End Sub
Đây số thứ tự nó đánh bị âm và ngược ạ
Việc đánh số thứ tự bạn không nên gắn nó với ActiveCell.
Bạn nên tạo 1 quy trình đánh số thứ tự từ dòng bắt đầu tới dòng cuối. Sau mỗi thủ tục lưu dữ liệu (hoặc sửa / xóa...) thì bạn chạy tiếp lệnh đánh số thứ tự (là bước cuối cùng trong quy trình và thực hiện một cách độc lập).
Code đánh số thứ tự cũng đơn giản thôi, ví dụ như vòng lặp sau:
Dim dongDau as long
Dim dongCuoi as long
dongDau = 7
dongCuoi = Sheets(...).Range("E" & Rows.Count).End(xlUp).Row
Dim i as long
For i = dongDau to dongCuoi
Range("A" & i).Value = i - 6 'Vì dòng đầu là dòng 7 nên số thứ tự sẽ đánh từ 1 = 7 - 6
Next i
Cảm ơn thầy. Dạ em làm được rồi ạ
Với lại em có 01 vấn đề cần hỏi là, em muốn cố định sheet nhất định không cho phép lăn chuột di chuyển gì hết. có được không ạ,
Và muốn code mở lên là show sheet menu trước
Về việc cố định Sheet:
1. bạn dùng chức năng Freeze pane cố định ở 1 vị trí góc dưới bên phải màn hình => như thế phạm vi cố định sẽ gần như toàn bộ màn hình
2. Sau đó bạn vào option trong excel bỏ thanh cuộn (scroll bar) dọc + ngang đi.
Về code mở file lên là chỉ hiện duy nhất sheet MENU
Bạn đặt sheet MENU ở vị trí đầu tiên bên trái thanh sheet tab. Như thế Sheet MENU sẽ có thứ tự là 1.
Sau đó viết 1 vòng lặp ẩn sheet, tính từ sheet thứ 2 trở đi.
Macro này bạn đặt vào sự kiện Workbook_BeforeClose để trước khi đóng workbook sẽ tự động ẩn các sheet. Lần sau mở file lên sẽ chỉ thấy hiện duy nhất sheet MENU.
Da em cảm ơn thầy ạ