Add-ins Đánh số thứ tự tự động (kèm code)

Liên hệ QC

NHG

Thành viên hoạt động
Tham gia
15/1/07
Bài viết
147
Được thích
125
Nhiều người nghĩ việc đánh số thứ tự quá đơn giản, việc gì phải code kiếc làm gì cho mất thời gian. Tuy nhiên, với mình đánh STT là cả một nghệ thuật, nói vui vậy thôi nhưng quả thực trong công việc, chăm chút cho cả những điều nhỏ nhất là điều nên làm đúng ko bạn
Trong Add in hỗ trợ 2 kiều đánh số thứ tự
Kiểu 1: Đánh số thứ tự kiểu giá trị: Phù hợp với đánh số thứ tự với số lượng dòng rất lớn
Kiểu 2: Đánh số thứ tự kiểu công thức: Phù hợp với đánh số thứ tự với số lượng dòng vừa phải (<=1000 dòng), đổi lại thì nó lại hỗ trợ bạn đánh số thứ tự sau khi lọc, ẩn, xóa
Pass mở code: 1
Video tham khảo cách sử dụng:


Mã:
Sub STTtuDong_KieuGiatri()
 On Error Resume Next
  If Selection.Rows.Count > 1000000 Or Selection.Columns.Count > 10000 Then ' Neu khong khai bao vung du lieu
Application.Assistant.DoAlert "MyVTV for Excel", ("Vung Select qua lon"), 0, 0, 0, 0, 0
GoTo Thoat
End If
    
    Dim giatriMsg As Integer
giatriMsg = Application.Assistant.DoAlert("MyVTV for Excel", ("Buoc 1: An cac dong khong can danh STT (neu co)") & vbCrLf & ("Buoc 2: Select vung can danh STT sau do chay lenh") & vbCrLf & vbCrLf & ("Ban muon tiep tuc danh STT khong? "), 4, 4, 1, 0, 0)
If giatriMsg = 7 Then
GoTo Thoat
End If

    Selection.ClearContents
  

  
Dim iSTT
Dim arr1
arr1 = Selection.Value


For i = 1 To Selection.Rows.Count
For j = 1 To Selection.Columns.Count






If Cells(i + Selection.Row - 1, j + Selection.Column - 1).EntireRow.Hidden = False Then
iSTT = iSTT + 1
Cells(i + Selection.Row - 1, j + Selection.Column - 1).Value = iSTT
'arr1(i, j) = iSTT
End If

Next j
Next i
 
 
'Selection.Value = arr1
'-----------
 
 

    
    
    
Thoat:
Set arr1 = Nothing
End Sub


Sub DanhSTTBangCongThuc()
    i = Selection.Row
    j = Selection.Rows.Count
    'Neu du lieu qua lon thi hien bang chon
If Selection.Rows.Count > 1000000 Or Selection.Columns.Count > 10000 Then ' Neu khong khai bao vung du lieu
Application.Assistant.DoAlert "MyVTV", ("Vung Select qua lon"), 0, 0, 0, 0, 0
GoTo Thoat
End If

If Selection.Count > 10000 Then
giatriMsg = Application.Assistant.DoAlert("MyVTV", ("Vung danh STT rat lon, co the mat nhieu thoi gian, ban van muon chay lenh ? "), 4, 4, 1, 0, 0)
If giatriMsg = 7 Then
GoTo Thoat
End If
Else
giatriMsg1 = Application.Assistant.DoAlert("MyVTV", ("Select vung can danh STT sau do chay lenh") & vbCrLf & (" Khi thuc hien Loc du lieu, hoac an hang, STT se duoc chay lai") & vbCrLf & vbCrLf & ("Ban muon tiep tuc danh STT tu dong khong? "), 4, 4, 1, 0, 0)
If giatriMsg1 = 7 Then
GoTo Thoat
End If

End If



'-------
Selection.ClearContents

    For k = 1 To j
    Cells(k + i - 1, Selection.Column).FormulaR1C1 = "=AGGREGATE(4,7,R" & i - 1 & "C:R[-1]C)+1"
    Next k
Thoat:
End Sub
 

File đính kèm

  • DanhSTT.xlam
    21.4 KB · Đọc: 153
Nhiều người nghĩ việc đánh số thứ tự quá đơn giản, việc gì phải code kiếc làm gì cho mất thời gian. Tuy nhiên, với mình đánh STT là cả một nghệ thuật, nói vui vậy thôi nhưng quả thực trong công việc, chăm chút cho cả những điều nhỏ nhất là điều nên làm đúng ko bạn
Đồng ý với bạn.
 
  • Thích
Reactions: NHG
addin hay quá, sau này khỏi phải nhớ công thức.
 
  • Thích
Reactions: NHG
Web KT
Back
Top Bottom