Đánh số thứ tự dạng 1, 1.1, 1.2, 1.3 ,... (2 người xem)

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

Excel365

Thành viên tích cực
Tham gia
29/10/10
Bài viết
865
Được thích
127
Giới tính
Nam
Nhờ các anh chị giúp em viết code đánh số thứ tự dạng 1, 1.1, 1.2, ...
Như ví dụ em gởi trong file đính kèm
Trân trọng cảm ơn
 

File đính kèm

Nhờ các anh chị giúp em viết code đánh số thứ tự dạng 1, 1.1, 1.2, ...
Như ví dụ em gởi trong file đính kèm
Trân trọng cảm ơn

Bạn thử code này xem sao:

Mã:
Sub Stt()    
    Dim SrcArr, ResArr()
    Dim lR As Long, k As Long, lStt As Long
    Dim sStt As String
    
    SrcArr = Sheet1.Range(Sheet1.Range("D3"), Sheet1.Range("D65000").End(xlUp)).Resize(, 2).Value2
    ReDim ResArr(1 To UBound(SrcArr, 1), 1 To 1)
    
    If IsArray(SrcArr) Then
        For lR = 1 To UBound(SrcArr, 1)
            If SrcArr(lR, 2) = "" Then
                lStt = lStt + 1
                k = 0
                ResArr(lR, 1) = lStt
            Else
                k = k + 1
                sStt = lStt & "." & k
                ResArr(lR, 1) = sStt
            End If
        Next lR
        With Sheet1
            .Range("B3:B10000").ClearContents
            .Range("B3").Resize(lR - 1, 1).Value = ResArr
        End With
    End If
    
End Sub
 
Upvote 0
Nhờ các anh chị giúp em viết code đánh số thứ tự dạng 1, 1.1, 1.2, ...
Như ví dụ em gởi trong file đính kèm
Trân trọng cảm ơn
Ngứa tay nên viết chơi tí cho vui. Hên thì trúng.
Uả sao giống giống bài số 2 vậy trời
PHP:
Sub abc()
Dim data(), i&, stt&, k&
data = Range([C3], [E65536].End(3)).Value
For i = 1 To UBound(data, 1)
   If data(i, 3) = "" Then
      stt = stt + 1
      data(i, 1) = stt
      k = 0
   Else
      k = k + 1
      data(i, 1) = stt & "." & k
   End If
Next
[C3].Resize(i - 1, 3) = data
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Cho em hỏi tại sao nó chỉ ra dạng 1,1 - 1,2 chứ không phải là 1.1 - 1.2.
Có cách nào mình thay thế dấu , thành dấu . không ạ
 
Upvote 0
Ngứa tay nên viết chơi tí cho vui. Hên thì trúng.
Uả sao giống giống bài số 2 vậy trời
PHP:
Sub abc()
Dim data(), i&, stt&, k&
data = Range([C3], [E65536].End(3)).Value
For i = 1 To UBound(data, 1)
   If data(i, 3) = "" Then
      stt = stt + 1
      data(i, 1) = stt
      k = 0
   Else
      k = k + 1
      data(i, 1) = stt & "." & k
   End If
Next
[C3].Resize(i - 1, 3) = data
End Sub
Em muốn những số 1.1, 1.2, ... sẽ định dạng cánh phải thì làm sao hả anh
 
Upvote 0
Thì chọn cột đó định dạng bên phải
 
Upvote 0
Bạn muốn thể hiện như vậy mà nó nằm sát mép phải hay sao?
 
Upvote 0
Chắc cái này phải để anh quang hải code luôn cho bạn, nếu bạn muốn viết. ý tưởng là dò từng dòng sử lý vài thao tác cơ bản để tìm ra số nguyên rồi canh giữa.( chú ý lần đầu tiên canh phải tất cả)
 
Upvote 0
Em muốn những số 1.1, 1.2, ... sẽ định dạng cánh phải thì làm sao hả anh

Định dạng text và canh phải cho cột STT trước khi chạy code.

PHP:
Sub abc()
Dim data(), i&, stt&, k&
data = Range([C3], [E65536].End(3)).Value
For i = 1 To UBound(data, 1)
   If data(i, 3) = "" Then
      stt = stt + 1
      data(i, 1) = stt
      Cells(i + 2, 3).HorizontalAlignment = xlCenter
      k = 0
   Else
      k = k + 1
      data(i, 1) = stt & "." & k
   End If
Next
[C3].Resize(i - 1, 3) = data
End Sub
 
Upvote 0

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

Back
Top Bottom