Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Kết quả 1 đến 6 của 6
  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    4

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

    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 ạ

  2. #2
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: Bạn thử với macro này, có gì còn khiếm khuyết ta bổ sung sau



    Mã nguồn PHP:
    [COLOR=#000000]
    Option Explicit Sub gpeSTT[/COLOR][COLOR=#007700]() If [/COLOR][COLOR=#0000BB]Selection[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Cells[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Count [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]1 Then Dim Rng [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range Dim jJ [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Integer[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]SoCuoi [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]SoDau [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]DD [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Byte Dim MyStr [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String Set Rng [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Selection MyStr [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Value[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]DD [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Len[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]MyStr[/COLOR][COLOR=#007700]) If [/COLOR][COLOR=#0000BB]Not IsNumeric[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Right[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]MyStr[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700])) [/COLOR][COLOR=#0000BB]Then [/COLOR][COLOR=#007700]Exit [/COLOR][COLOR=#0000BB]Sub SoCuoi [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]InputBox[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"Hay Nhap Só Cuo1i Ban Càn:"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"GPE.COM Xin Chào Ban!"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"99"[/COLOR][COLOR=#007700]) For [/COLOR][COLOR=#0000BB]jJ [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]DD To 1 Step [/COLOR][COLOR=#007700]-[/COLOR][COLOR=#0000BB]1 [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]Not IsNumeric[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Mid[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]MyStr[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]jJ[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700])) [/COLOR][COLOR=#0000BB]Then [/COLOR][COLOR=#007700]Exit For [/COLOR][COLOR=#0000BB]SoDau [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]10 [/COLOR][COLOR=#007700]^ ([/COLOR][COLOR=#0000BB]DD [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]jJ[/COLOR][COLOR=#007700]) * [/COLOR][COLOR=#0000BB]CInt[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Mid[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]MyStr[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]jJ[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700])) + [/COLOR][COLOR=#0000BB]SoDau Next jJ Rng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Left[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]MyStr[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]jJ[/COLOR][COLOR=#007700]) & [/COLOR][COLOR=#0000BB]CStr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]SoDau [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Select Selection[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]AutoFill Destination[/COLOR][COLOR=#007700]:=[/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1 [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]SoCuoi [/COLOR][COLOR=#007700]- ([/COLOR][COLOR=#0000BB]SoDau Mod 10[/COLOR][COLOR=#007700])), [/COLOR][COLOR=#0000BB]Type[/COLOR][COLOR=#007700]:=[/COLOR][COLOR=#0000BB]xlFillDefault Rng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Select End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]End Sub [/COLOR
    Cách xài:

    Tại đầu cột nào đó còn trống ta nhập chuỗi chứa số ở cuối, như "GPE303"
    Chép macro này vô module 1 & gán cho nó tổ hợp fím tắt, như {CTRL}+{SHIFT}+R
    Kích hoạt ô vừa nhập & cho chạy macro (bằng tổ hợp fím trên)
    Hiện hộp thoại iêu cầu ta cung cấp số cuối, bạn thử nhập con số 13 & xem kết quả macro;
    Thực hiện với những ô khác tiếp theo để biết khả năng của macro.

    /(/hững mong là khỏi đưa file lên!:k5392411:

  3. #3
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: 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é

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: 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

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Tự đánh thứ tự theo số mình nhập trước

    Chuẩn men. Cảm ơn bạn

  6. #6
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: Tự đánh thứ tự theo số mình nhập trước




    Trích dẫn Gửi bởi VetMini
    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 ?

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •