Tự đánh thứ tự theo số mình nhập trước

duhero

New Member
Hội viên mới
Em có 1 cell chứa ký tự (ví dụ: 2c172z01) bây giờ mình muốn nhấn 1 phím bất kỳ (ví dụ ấn F2) sẽ hiện lên 1 ô cho mình nhập số nhảy (ví dụ như em muốn nhảy đến 2c172z89) thì sẽ tự động nhảy số từ 1-89 giống như mình gõ 1, 2 rồi dùng chuột kéo xuống vậy.
Nếu ít thì em dùng chuột kéo đơn giản thôi, nhưng đằng này nhảy nhiều quá mất công kéo lâu lắm ạ
 
Ðề: Tự đánh thứ tự theo số mình nhập trước

Mình đã làm theo và kết quả rất tốt. Chỉ có điều là mình không biết gán phím tắt cho macro như thế nào. hiixx
Ah mình làm được rồi. Có điều là mình muốn đánh 51 ô đầu tiên, rồi chạy macro nhấn 61 là nó chạy từ 51 đến số 61, như của bạn thì nó nhảy 61 lần, (tức là số 111). Cảm ơn bạn lần nữa nhé
 
Sửa lần cuối:
Ðề: Tự đánh thứ tự theo số mình nhập trước

Code này cho phép bạn chọn ô để khởi đầu, <Enter> thì mặc định là ô đang chọn

Mã:
' code đánh số liên tục kể từ một trị
Sub DanhSo()
Dim rg As Range
Dim inpS, st As String
Dim soD, soC, i As Integer
Set rg = Selection.Cells(1, 1) ' chọn ô khởi đầu, mặc định là ô đang chọn
inpS = InputBox("Dia chi o khoi dau (" & rg.Address & ")", "STARTING CELL", rg.Address)
Set rg = Range(inpS).Cells(1)
inpS = rg.Value
' tìm số khởi đầu
soD = Len(inpS)
Do While soD > 0 And IsNumeric(Mid(inpS, soD, 1))
soD = soD - 1
Loop
st = Left(inpS, soD)
soD = CInt(Mid(inpS, soD + 1))
' nhập số cuối
inpS = InputBox("So cuoi ", "FINAL NUMBER IN SERIES", soD)
soC = CInt(inpS)
' ghi các ô liên tiếp
For i = soD + 1 To soC
rg.Offset(i - soD, 0).Value = st & i
Next i
Set rg = Nothing
End Sub
 
Ðề: Tự đánh thứ tự theo số mình nhập trước

Chuẩn men. Cảm ơn bạn
 
Ðề: Tự đánh thứ tự theo số mình nhập trước

Code này cho phép bạn chọn ô để khởi đầu, <Enter> thì mặc định là ô đang chọn

Mã:
' code đánh số liên tục kể từ một trị
Sub DanhSo()
Dim rg As Range
Dim inpS, st As String
Dim soD, soC, i As Integer
Set rg = Selection.Cells(1, 1) ' chọn ô khởi đầu, mặc định là ô đang chọn
inpS = InputBox("Dia chi o khoi dau (" & rg.Address & ")", "STARTING CELL", rg.Address)
Set rg = Range(inpS).Cells(1)
inpS = rg.Value
' tìm số khởi đầu
soD = Len(inpS)
Do While soD > 0 And IsNumeric(Mid(inpS, soD, 1))
soD = soD - 1
Loop
st = Left(inpS, soD)
soD = CInt(Mid(inpS, soD + 1))
' nhập số cuối
inpS = InputBox("So cuoi ", "FINAL NUMBER IN SERIES", soD)
soC = CInt(inpS)
' ghi các ô liên tiếp
For i = soD + 1 To soC
rg.Offset(i - soD, 0).Value = st & i
Next i
Set rg = Nothing
End Sub

Bạn ơi có 1 vấn đề phát sinh thế này: Giả sử mình gõ mã 10A09B01 khi chạy code trên đến 15 chẳng hạn thì nó sẽ thành 10A09B2, 10A09B3, ... bạn có thể giúp mình thành 10A09B02, 10A09B03, ... đựoc không ?
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top