tự động đánh số thứ tự dữ liệu không liên tiếp (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

quoc nhat

Thành viên tiêu biểu
Tham gia
8/3/12
Bài viết
567
Được thích
43
Nghề nghiệp
cán bộ ngành y tế
Em có cái File ví dụ với dữ liệu cần đánh stt nằm không liên tiếp nhau. Các anh chị giúp em cái code đánh số thự tự với. Những dòng cần đánh STT em có đánh dấu = màu đỏ các anh chị giúp em cái code với nhé.( Đừng quan tâm về dữ liệu và phong chữ các anh chị nhé)
em cảm ơn nhiều
 

File đính kèm

Em có cái File ví dụ với dữ liệu cần đánh stt nằm không liên tiếp nhau. Các anh chị giúp em cái code đánh số thự tự với. Những dòng cần đánh STT em có đánh dấu = màu đỏ các anh chị giúp em cái code với nhé.( Đừng quan tâm về dữ liệu và phong chữ các anh chị nhé)
em cảm ơn nhiều
Thử thế này xem sao rồi tính tiếp Lẽ ra nên cho dữ liệu tạm vào
Trộn cell làm chi nên không lấy dòng cuối được. Code tối kỵ mấy cái vụ trộn cell
PHP:
Sub SOTHUTU()
Dim STT(), i, k
STT = [A9:C199].Value
For i = 1 To UBound(STT)
   If STT(i, 3) <> "" Then
      k = k + 1
      STT(i, 1) = k
   Else
      k = 0
   End If
Next
[A9].Resize(i - 1, 3) = STT
End Sub
 
Upvote 0
Thử thế này xem sao rồi tính tiếp Lẽ ra nên cho dữ liệu tạm vào
Trộn cell làm chi nên không lấy dòng cuối được. Code tối kỵ mấy cái vụ trộn cell
PHP:
Sub SOTHUTU()
Dim STT(), i, k
STT = [A9:C199].Value
For i = 1 To UBound(STT)
   If STT(i, 3) <> "" Then
      k = k + 1
      STT(i, 1) = k
   Else
      k = 0
   End If
Next
[A9].Resize(i - 1, 3) = STT
End Sub
Có lẽ em chưa diển tả hết ý nên anh Hải chưa hiểu được.
thực ra STT không lặp lại mà là nối tiếp nhau anhn à.
Anh nghiên cứu giúp em một lần nữa nhé
Cảm ơn anh nhiều lắm
 
Upvote 0
Thử thế này xem sao rồi tính tiếp Lẽ ra nên cho dữ liệu tạm vào
Trộn cell làm chi nên không lấy dòng cuối được. Code tối kỵ mấy cái vụ trộn cell
PHP:
Sub SOTHUTU()
Dim STT(), i, k
STT = [A9:C199].Value
For i = 1 To UBound(STT)
   If STT(i, 3) <> "" Then
      k = k + 1
      STT(i, 1) = k
   Else
      k = 0
   End If
Next
[A9].Resize(i - 1, 3) = STT
End Sub
anh ơi cho em hỏi thêm. Code trên nếu đặt vào sự kiện Worksheet _Change ( có thể insert thêm dòng và nhập dữ liệu vào dòng đó) thì STT không nhảy mà còn bị lổi nữa. Anh xem giúp em code với
 
Upvote 0
anh ơi cho em hỏi thêm. Code trên nếu đặt vào sự kiện Worksheet _Change ( có thể insert thêm dòng và nhập dữ liệu vào dòng đó) thì STT không nhảy mà còn bị lổi nữa. Anh xem giúp em code với

Nếu bạn dùng code của quanghai thì có lẽ thế này
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C:C")) Is Nothing Then
        Application.EnableEvents = False
        SOTHUTU
        Application.EnableEvents = True
    End If
End Sub

Tôi viết trong notepad nên không test. Bạn thử xem.
-----------
Hoặc bạn sửa code của quanghai
Mã:
Sub SOTHUTU()
Dim STT(), i, k
STT = [A9:C199].Value
For i = 1 To UBound(STT)
   If STT(i, 3) <> "" Then
      k = k + 1
      STT(i, 1) = k
   End If
Next
[A9].Resize([SIZE=4][B][COLOR=#ff0000]i - 1, 3[/COLOR][/B][/SIZE]) = STT
End Sub

thành

Mã:
Sub SOTHUTU()
Dim STT(), i, k
STT = [A9:C199].Value
For i = 1 To UBound(STT)
   If STT(i, 3) <> "" Then
      k = k + 1
      STT(i, 1) = k
   End If
Next
[A9].Resize([SIZE=4][B][COLOR=#ff0000]i[/COLOR][/B][/SIZE]) = STT
End Sub

lúc đó có thể

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C:C")) Is Nothing Then SOTHUTU
End Sub
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom