Giúp code macro đánh số TT mục lớn là số La Mã (I., II., III.), mục nhỏ là số thường (1., 2., 3.,)

Liên hệ QC

saugio

Thành viên mới
Tham gia
20/1/09
Bài viết
13
Được thích
1
Chào các bạn,
Mình cần giúp mình code đánh số TT tự động các mục lớn là số La Mã: I., II., III., IV....các mục con trong đó đánh số thường: 1., 2., 3....
Điều kiện là chỉ đánh cho các đong đang có trạng thái hiện, các dòng có trạng thái ẩn thì không đánh, số TT của mục ở trang sau sẽ nối tiếp số TT mục cuối cùng của trang trước, nếu mình bung dòng ẩn ra thì STT các mục sẽ thay đổi theo.
Mình đính kèm VD.
Cám ơn các bạn.
 

File đính kèm

  • Danh so TT tung muc.xlsx
    11 KB · Đọc: 46
Chào các bạn,
Mình cần giúp mình code đánh số TT tự động các mục lớn là số La Mã: I., II., III., IV....các mục con trong đó đánh số thường: 1., 2., 3....
Điều kiện là chỉ đánh cho các đong đang có trạng thái hiện, các dòng có trạng thái ẩn thì không đánh, số TT của mục ở trang sau sẽ nối tiếp số TT mục cuối cùng của trang trước, nếu mình bung dòng ẩn ra thì STT các mục sẽ thay đổi theo.
Mình đính kèm VD.
Cám ơn các bạn.
cũng đang vướng giống bạn
Bạn test thử xem sao
Để chạy code này, bạn phải chỉnh lại sheet name trong cửa sổ vbe liên tục bắt đầu từ 1 đến hết theo thứ tự sheet cần đặt ký tự la mã
Mã:
Sub DanhSoThuTu()
Dim i, j, k
For i = 1 To Worksheets.Count
    Sheets("sheet" & i).Activate
    For j = 4 To Range("b1000000").End(xlUp).Row
        If Range("b" & j).RowHeight <> 0 Then
            If Len(Range("b" & j)) > 2 Then
                k = k + 1
                Range("a" & j) = "=roman(" & k & ")"
            End If
        Else
            Range("a" & j) = ""
        End If
    Next j
Next i
End Sub
 
Upvote 0
Bạn test thử xem sao
Để chạy code này, bạn phải chỉnh lại sheet name trong cửa sổ vbe liên tục bắt đầu từ 1 đến hết theo thứ tự sheet cần đặt ký tự la mã
Mã:
Sub DanhSoThuTu()
Dim i, j, k
For i = 1 To Worksheets.Count
    Sheets("sheet" & i).Activate
    For j = 4 To Range("b1000000").End(xlUp).Row
        If Range("b" & j).RowHeight <> 0 Then
            If Len(Range("b" & j)) > 2 Then
                k = k + 1
                Range("a" & j) = "=roman(" & k & ")"
            End If
        Else
            Range("a" & j) = ""
        End If
    Next j
Next i
End Sub
Còn số 1. 2.
 
Upvote 0
@saugio , @hoangkyanh1610
Gửi bạn đoạn code đã hiệu chỉnh, yêu cầu đặt tên sheet vẫn như bài trước
Mã:
Sub DanhSoThuTu_()
Dim i, j, k, x
For i = 1 To Worksheets.Count
    Sheets("sheet" & i).Activate
    For j = 4 To Range("c1000000").End(xlUp).Row
        If Range("a" & j).RowHeight <> 0 Then
            If Range("c" & j) = "" Then
                If Range("b" & j) <> "" Then
                    k = k + 1
                    Range("a" & j) = "=roman(" & k & ")"
                    
                    x = 0
                End If
            Else
                x = x + 1
                Range("b" & j) = x
            End If
        End If
    Next j
Next i
End Sub
 
Upvote 0
@saugio , @hoangkyanh1610
Gửi bạn đoạn code đã hiệu chỉnh, yêu cầu đặt tên sheet vẫn như bài trước
Mã:
Sub DanhSoThuTu_()
Dim i, j, k, x
For i = 1 To Worksheets.Count
    Sheets("sheet" & i).Activate
    For j = 4 To Range("c1000000").End(xlUp).Row
        If Range("a" & j).RowHeight <> 0 Then
            If Range("c" & j) = "" Then
                If Range("b" & j) <> "" Then
                    k = k + 1
                    Range("a" & j) = "=roman(" & k & ")"
                   
                    x = 0
                End If
            Else
                x = x + 1
                Range("b" & j) = x
            End If
        End If
    Next j
Next i
End Sub
Dữ liệu chưa nhập đầy đủ, nếu các dòng trống nhập liệu vào cột C sẽ khó xử lý
 
Upvote 0
Dữ liệu chưa nhập đầy đủ, nếu các dòng trống nhập liệu vào cột C sẽ khó xử lý
Không hiểu rõ ý bác lắm.
Trong file mẫu thì thấy cột C, dòng nào có dữ liệu thì điền số 123..., rỗng thì xét cột B nếu <> rỗng thì điền I, II, III... nên mới code vậy bác.
 
Upvote 0
Không hiểu rõ ý bác lắm.
Trong file mẫu thì thấy cột C, dòng nào có dữ liệu thì điền số 123..., rỗng thì xét cột B nếu <> rỗng thì điền I, II, III... nên mới code vậy bác.
Thông thường văn bản được trình bày như trong file
 

File đính kèm

  • Danh so TT tung muc (1).xlsx
    10.1 KB · Đọc: 14
Upvote 0
Cám ơn các bạn đã xem giúp.
Đánh số thứ tự theo nguyên tắc: mỗi 1 cấp thụt vô 1 cột rồi mới đánh số (file đính kèm).
 

File đính kèm

  • Danh so TT tung muc_V1.xlsx
    10.9 KB · Đọc: 15
Upvote 0
Web KT
Back
Top Bottom