NHG
Thành viên hoạt động



- Tham gia
- 15/1/07
- Bài viết
- 148
- Được thích
- 127
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:
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