LẬP TRÌNH ĐÁNH SỐ THỨ TỰ TỪNG MẢNG (1 người xem)

Liên hệ QC

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

yamakashi2003

Thành viên mới
Tham gia
19/2/20
Bài viết
15
Được thích
0
Em chào anh, chị trong group ạ, em là thành viên mới nên có nhiều cái đơn giản không biết mong mọi người chỉ giúp
Giả sử em có cột số thứ tự, em đã sort cột tên nhân viên a-z rồi ạ, giờ em muốn đánh số thứ thự ở cột STT từ 1 đến n, sao cho khi sang nhân viên khác, ô tương ứng ở cột stt sẽ chạy lại từ 1 đến n, (giả sử n là số dòng có tên A trong cột tên NV)
Em có gõ tay minh hoạt cột STT bôi vàng như trong file đính kèm
Mong anh, chị chỉ giúp em cách viết code VBA để với dữ liệu nhiều vài trăm dòng vẫn chạy được ạ
Em xin cảm ơn

Em có thử áp dụng đoạn code này nhưng cột A chạy ra toàn số 0, không chạy được Số thứ tự, mong các bác chỉ lỗi giúp:

Dim sh As Worksheet, i As Long, j As Long, n As Long
Set sh = Sheet1
With sh
n = .Range("B100000").End(xlUp).Row

For i = 2 To n
.Range("A" & i) = WorksheetFunction.CountIf(Sheet1.Range("B2:B" & i), "B" & i)
Next i
End With

End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Em chào anh, chị trong group ạ, em là thành viên mới nên có nhiều cái đơn giản không biết mong mọi người chỉ giúp
Giả sử em có cột số thứ tự, em đã sort cột tên nhân viên a-z rồi ạ, giờ em muốn đánh số thứ thự ở cột STT từ 1 đến n, sao cho khi sang nhân viên khác, ô tương ứng ở cột stt sẽ chạy lại từ 1 đến n, (giả sử n là số dòng có tên A trong cột tên NV)
Mong anh, chị chỉ giúp em công thức để với dữ liệu nhiều vài trăm dòng vẫn chạy được ạ
Em xin cảm ơn
Thử công thức ngu ngu này xem.
 

File đính kèm

Upvote 0
với file như trên em có ý tưởng là sẽ đánh số thứ tự trước rồi mới chèn thêm dòng tính tổng; em có viết đoạn code sau nhưng không hiểu sao lại sai, khi chạy code nó ra toan số không ở cột A, mong các bác chỉ giúp
Sub TH()

Dim sh As Worksheet, i As Long, j As Long, n As Long
Set sh = Sheet1
With sh
n = .Range("B100000").End(xlUp).Row

For i = 2 To n
.Range("A" & i) = WorksheetFunction.CountIf(Sheet1.Range("B2:B" & i), "B" & i)
Next i
End With

End Sub
 
Upvote 0
với file như trên em có ý tưởng là sẽ đánh số thứ tự trước rồi mới chèn thêm dòng tính tổng; em có viết đoạn code sau nhưng không hiểu sao lại sai, khi chạy code nó ra toan số không ở cột A, mong các bác chỉ giúp
Sub TH()

Dim sh As Worksheet, i As Long, j As Long, n As Long
Set sh = Sheet1
With sh
n = .Range("B100000").End(xlUp).Row

For i = 2 To n
.Range("A" & i) = WorksheetFunction.CountIf(Sheet1.Range("B2:B" & i), "B" & i)
Next i
End With

End Sub
phai là Range("B" & i) nhé
 
Upvote 0
Em chào anh, chị trong group ạ, em là thành viên mới nên có nhiều cái đơn giản không biết mong mọi người chỉ giúp
Giả sử em có cột số thứ tự, em đã sort cột tên nhân viên a-z rồi ạ, giờ em muốn đánh số thứ thự ở cột STT từ 1 đến n, sao cho khi sang nhân viên khác, ô tương ứng ở cột stt sẽ chạy lại từ 1 đến n, (giả sử n là số dòng có tên A trong cột tên NV)
Em có gõ tay minh hoạt cột STT bôi vàng như trong file đính kèm
Mong anh, chị chỉ giúp em cách viết code VBA để với dữ liệu nhiều vài trăm dòng vẫn chạy được ạ
Em xin cảm ơn

Em có thử áp dụng đoạn code này nhưng cột A chạy ra toàn số 0, không chạy được Số thứ tự, mong các bác chỉ lỗi giúp:

Dim sh As Worksheet, i As Long, j As Long, n As Long
Set sh = Sheet1
With sh
n = .Range("B100000").End(xlUp).Row

For i = 2 To n
.Range("A" & i) = WorksheetFunction.CountIf(Sheet1.Range("B2:B" & i), "B" & i)
Next i
End With

End Sub
File xlsx thì làm sao có code?

Thử 1 trong 2 code này, tùy thích cái nào thì chọn cái đó cho phù hợp
Mã:
Sub tt()
Dim sh As Worksheet, i As Long, j As Long, n As Long
Set sh = Sheet1
With sh
    n = .Range("B100000").End(xlUp).Row
    j = 0
    For i = 2 To n
        With .Range("A" & i)
            If .MergeCells Then
                j = 0
            Else
                j = j + 1
                .Value = j
            End If
        End With
    Next i
    
End With
End Sub

hoặc

Mã:
Sub tt2()
Dim sh As Worksheet, i As Long, j As Long, n As Long
Set sh = Sheet1
With sh
    n = .Range("B100000").End(xlUp).Row
    j = 0
    For i = 2 To n
        With .Range("A" & i)
            If Not .MergeCells Then
                j = j + 1
                .Value = j
            End If
            If .Offset(1, 1).Value <> .Offset(, 1).Value Then j = 0
        End With
    Next i
End With
End Sub
 
Upvote 0
File xlsx thì làm sao có code?

Thử 1 trong 2 code này, tùy thích cái nào thì chọn cái đó cho phù hợp
Mã:
Sub tt()
Dim sh As Worksheet, i As Long, j As Long, n As Long
Set sh = Sheet1
With sh
    n = .Range("B100000").End(xlUp).Row
    j = 0
    For i = 2 To n
        With .Range("A" & i)
            If .MergeCells Then
                j = 0
            Else
                j = j + 1
                .Value = j
            End If
        End With
    Next i
  
End With
End Sub

hoặc

Mã:
Sub tt2()
Dim sh As Worksheet, i As Long, j As Long, n As Long
Set sh = Sheet1
With sh
    n = .Range("B100000").End(xlUp).Row
    j = 0
    For i = 2 To n
        With .Range("A" & i)
            If Not .MergeCells Then
                j = j + 1
                .Value = j
            End If
            If .Offset(1, 1).Value <> .Offset(, 1).Value Then j = 0
        End With
    Next i
End With
End Sub
em gửi file rồi mới bắt đầu lên mạng tìm cách viết code mà chưa được bác ạ, nên file em gửi là ví dụ thôi chưa có code,
tiện bác cho em hỏi sao em dùng hàm countif như trên k được ạ
 
Lần chỉnh sửa cuối:
Upvote 0
với file như trên em có ý tưởng là sẽ đánh số thứ tự trước rồi mới chèn thêm dòng tính tổng; em có viết đoạn code sau nhưng không hiểu sao lại sai, khi chạy code nó ra toan số không ở cột A, mong các bác chỉ giúp
Sub TH()

Dim sh As Worksheet, i As Long, j As Long, n As Long
Set sh = Sheet1
With sh
n = .Range("B100000").End(xlUp).Row

For i = 2 To n
.Range("A" & i) = WorksheetFunction.CountIf(Sheet1.Range("B2:B" & i), "B" & i)
Next i
End With

End Sub
Bạn sửa "B" & i ----> range("B" & i) là ra kết quả mà.
 
Upvote 0
Upvote 0
Web KT

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

Back
Top Bottom