Đánh số thứ tự tự động (1 người xem)

Liên hệ QC

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

nguyenducbac

Thành viên mới
Tham gia
11/3/08
Bài viết
16
Được thích
0
Mình có bài toán nho nhỏ xin hỏi các cao thủ xíu, bài toán như sau:
Có 3 cột A, B, C. Cột A mang tên: họ và tên, cột B: số tiền ủng hộ, cột C: thứ tự ủng hộ.
Mình muốn mỗi khi có người ủng hộ, mình nhập số tiền vào cột B tự khắc cột C nhẩy số thể hiện đó là người thứ bao nhiêu ủng hộ.
Có thể không dùng VBA được không?
Cám ơn các bác trước.
 
Mình có bài toán nho nhỏ xin hỏi các cao thủ xíu, bài toán như sau:
Có 3 cột A, B, C. Cột A mang tên: họ và tên, cột B: số tiền ủng hộ, cột C: thứ tự ủng hộ.
Mình muốn mỗi khi có người ủng hộ, mình nhập số tiền vào cột B tự khắc cột C nhẩy số thể hiện đó là người thứ bao nhiêu ủng hộ.
Có thể không dùng VBA được không?
Cám ơn các bác trước.

Cái này thì dùng hàm đếm là được thôi!Bạn xem file thử nhé!
 

File đính kèm

Đây là cách dùng VBA, bạn xem file, nhập tên vào cột A, STT sẽ nhảy.
 

File đính kèm

Lần chỉnh sửa cuối:
- Rất cám ơn bạn nhưng ý mình là như thế này nè bạn.
 

File đính kèm

- Rất cám ơn bạn nhưng ý mình là như thế này nè bạn.

Tạm thời có cách này, chưa hoàn thiện, mọi người cải tiến thêm.

Bạn lưu ý trình tự như sau :
Nhập hết tên người ủng hộ, nhập số tiền đến đâu, STT sẽ hiện đến đó.

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Not Intersect(Target, [B:B]) Is Nothing Then _
        Target.Offset(, 1) = WorksheetFunction.Max(Range("C:C")) + 1
    End
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn xem thử File đính kèm.
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn xem thử File đính kèm.

Em Test thấy có mấy điểm như sau :
- Nếu mình nhập số tiền vô liên tục, VD : [E5]=1, [E6]=4 thì STT không nhảy.
- Nếu nhập sai số tiền muốn sửa lại thì STT cũng bị thay đổi theo.

Hic, em thấy bài này chẳng dễ chút nào +-+-+-++-+-+-++-+-+-+
 
Mình có bài toán nho nhỏ xin hỏi các cao thủ xíu, bài toán như sau:
Có 3 cột A, B, C. Cột A mang tên: họ và tên, cột B: số tiền ủng hộ, cột C: thứ tự ủng hộ.
Mình muốn mỗi khi có người ủng hộ, mình nhập số tiền vào cột B tự khắc cột C nhẩy số thể hiện đó là người thứ bao nhiêu ủng hộ.
Có thể không dùng VBA được không?
Cám ơn các bác trước.
Yêu cầu này không dùng VBA không thực hiện được.

Em Test thấy có mấy điểm như sau :
- Nếu mình nhập số tiền vô liên tục, VD : [E5]=1, [E6]=4 thì STT không nhảy.
- Nếu nhập sai số tiền muốn sửa lại thì STT cũng bị thay đổi theo.

Hic, em thấy bài này chẳng dễ chút nào +-+-+-++-+-+-++-+-+-+
Code của bạn nếu nhập sai, sửa lại STT cũng chạy sai luôn.
Sửa lại thế này thử xem.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Intersect(Target, [B:B]) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
    If Target.Offset(, 1).Value = "" Then
        Target.Offset(, 1) = WorksheetFunction.Max(Range("C:C")) + 1
    End If
End Sub
 

File đính kèm

Em Test thấy có mấy điểm như sau :
- Nếu mình nhập số tiền vô liên tục, VD : [E5]=1, [E6]=4 thì STT không nhảy.
- Nếu nhập sai số tiền muốn sửa lại thì STT cũng bị thay đổi theo.

Hic, em thấy bài này chẳng dễ chút nào +-+-+-++-+-+-++-+-+-+

1. Nhập số tiền vô liên tục Stt không nhảy là lỗi do mình quét theo Areas, đúng ra là phải quét theo Cell. Đã sửa lại file đính kèm bài trên.
2. Nếu nhập sai số tiền muốn sửa lại thì STT cũng bị thay đổi theo là đúng mà nếu không thì lấy gì để phân biệt trước sau. Trường hợp này không thể cẩu thả được (giống như đi tàu xe nhỡ chuyến này thì phải đi chuyến sau thôi).

Mình cũng chưa làm kiểu này bao giờ, tham gia là để ôn luyện và học hỏi thêm vì vậy không thành công trong việc này thì cũng củng cố và mở rộng thêm kiến thức (mọi cái khó đều do ta chưa biết mà thôi).
 
Các bạn dùng Worksheet_Change nhưng lại quên 1 điểm quan trọng: Nếu người ta không nhập mà copy, Paste thì sao? ---> Ví dụ: 10 dòng liên tiếp ta nhập 1 số tiền giống nhau, lý nào các bạn bắt người dùng phải nhập từng cell? Họ cóc thèm xài code của bạn đâu nha
Ẹc... Ẹc...
Tôi thì dùng code này:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("B2:B65536"), Target) Is Nothing Then
    Range("C2:C65536").ClearContents
    With Range([B2], [B65536].End(xlUp))
      .Offset(, 1).Value = "=IF(RC[-1]="""","""",Max(R1C:R[-1]C)+1)"
      .Offset(, 1).Value = .Offset(, 1).Value
    End With
  End If
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Các bạn dùng Worksheet_Change nhưng lại quên 1 điểm quan trọng: Nếu người ta không nhập mà copy, Paste thì sao? ---> Ví dụ: 10 dòng liên tiếp ta nhập 1 số tiền giống nhau, lý nào các bạn bắt người dùng phải nhập từng cell? Họ cóc thèm xài code của bạn đâu nha
Ẹc... Ẹc...
Tôi thì dùng code này:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("B2:B65536"), Target) Is Nothing Then
    Range("C2:C65536").ClearContents
    With Range([B2], [B65536].End(xlUp))
      .Offset(, 1).Value = "=IF(RC[-1]="""","""",Max(R1C:R[-1]C)+1)"
      .Offset(, 1).Value = .Offset(, 1).Value
    End With
  End If
End Sub
Bạn xem lại yêu cầu của tác giả nha. Người ủng hộ trước không có nghĩa là được nhập ở trên. Nếu như làm theo cách của bạn thì dùng công thức được rồi, đâu cần VBA đâu. Muốn nhập cùng lúc nhiều ô cũng được. Đâu có khó.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
        For Each Cll In Intersect(Target, [B:B])
            If Cll.Offset(, 1).Value = "" Then
                Cll.Offset(, 1).Value = WorksheetFunction.Max([C:C]) + 1
            End If
        Next
End Sub
 
Các bạn dùng Worksheet_Change nhưng lại quên 1 điểm quan trọng: Nếu người ta không nhập mà copy, Paste thì sao? ---> Ví dụ: 10 dòng liên tiếp ta nhập 1 số tiền giống nhau, lý nào các bạn bắt người dùng phải nhập từng cell? Họ cóc thèm xài code của bạn đâu nha
Ẹc... Ẹc...
Tôi thì dùng code này:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("B2:B65536"), Target) Is Nothing Then
    Range("C2:C65536").ClearContents
    With Range([B2], [B65536].End(xlUp))
      .Offset(, 1).Value = "=IF(RC[-1]="""","""",Max(R1C:R[-1]C)+1)"
      .Offset(, 1).Value = .Offset(, 1).Value
    End With
  End If
End Sub

Thế này không đúng yêu cầu của tác giả rồi anh ạ, số tiền của người nào nhập vào sau thì STT của người đó phải là lớn nhất.
 
Bạn xem lại yêu cầu của tác giả nha. Người ủng hộ trước không có nghĩa là được nhập ở trên. Nếu như làm theo cách của bạn thì dùng công thức được rồi, đâu cần VBA đâu. Muốn nhập cùng lúc nhiều ô cũng được. Đâu có khó.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
        For Each Cll In Intersect(Target, [B:B])
            If Cll.Offset(, 1).Value = "" Then
                Cll.Offset(, 1).Value = WorksheetFunction.Max([C:C]) + 1
            End If
        Next
End Sub
Người ủng hộ trước không có nghĩa là được nhập ở trên ---> Cái này thì hơi bị kỳ ...
Mà cho dù là bạn nhận định thế thì ... ---> Chẳng lẽ nhập xong không cho người ta sửa lại à? (ví dụ như nhập nhầm và người ta xóa đi) ---> Bạn kiểm tra thử trường hợp này trong code của bạn!
Để "rào" hết tất cả mọi trường hợp là điều không thể nào ---> Có điều tôi không nghĩ rằng người ũng hộ sau lại nhập trên người ũng hộ trước ----> Nó làm cho bảng tính trở lên quá lượm thượm
 
Lần chỉnh sửa cuối:
Người ủng hộ trước không có nghĩa là được nhập ở trên ---> Cái này thì hơi bị kỳ ...
Mà cho dù là bạn nhận định thế thì ... ---> Chẳng lẽ nhập xong không cho người ta sửa lại à? (ví dụ như nhập nhầm và người ta xóa đi) ---> Bạn kiểm tra thử trường hợp này trong code của bạn!
Để "rào" hết tất cả mọi trường hợp là điều không thể nào ---> Có điều tôi không nghĩ rằng người ũng hộ sau lại nhập trên người ũng hộ trước ----> Nó làm cho bảng tính trở lên quá lượm thượm
Xem file và yêu cầu của tác giả trong bài #4 bạn sẽ hiểu tác giả cần gì. Ví dụ bạn có sẵn một danh sách nhân viên trong công ty. Bây giờ ai ủng hộ thì tìm tên và nhập số tiền vào. Không có gì là vô lý và lượm thượm cả. Sẽ đỡ mất thời gian hơn là ai ủng hộ mới nhập tên, số tiền vào. Vì biết trước danh sách những người sẽ ủng hộ. Còn nếu ai ủng hộ trước nhập tên trước thì hàm Counta() ở bài #2 đã giải quyết yêu cầu nay.

Rào hết các trường hợp không có nghĩa là phải rào cả trường hợp sai do người dùng. Muốn sửa khi người ta nhập nhầm thì cũng được thôi. Nhưng như thế sẽ ảnh hưởng đến tốc độ. Vậy tại sao không cẩn thận một chút khi nhập liệu.
 
Người ủng hộ trước không có nghĩa là được nhập ở trên ---> Cái này thì hơi bị kỳ ...
Mà cho dù là bạn nhận định thế thì ... ---> Chẳng lẽ nhập xong không cho người ta sửa lại à? (ví dụ như nhập nhầm và người ta xóa đi) ---> Bạn kiểm tra thử trường hợp này trong code của bạn!
Để "rào" hết tất cả mọi trường hợp là điều không thể nào ---> Có điều tôi không nghĩ rằng người ũng hộ sau lại nhập trên người ũng hộ trước ----> Nó làm cho bảng tính trở lên quá lượm thượm

Cái yêu cầu bị kỳ đó tác giả có yêu cầu ở bài số 4 đó thầy NDU ơi!Em cũng thấy rất kỳ và rõ ràng là tự làm khó mình nhưng mọi người cố gắng giải để làm đề tài nâng cao trình độ cũng hay!Đã vậy lại còn yêu cầu không dùng code nữa đó!!$@!!Em có từng nghĩ qua là dùng hàm rank để xếp hạng theo thời gian nhập giá trị tiền ủng hộ nhưng cái vụ thời gian nhập giá trị này không biết dùng cách nào để gọi.Thầy có thể giúp với ý tưởng này được không?
 
Có điều tôi không nghĩ rằng người ũng hộ sau lại nhập trên người ũng hộ trước ----> Nó làm cho bảng tính trở lên quá lượm thượm

Em nghĩ thế này, danh sách tên đã có, ví dụ đó là ds cán bộ trong Cty, ai cũng phải có nghĩa vụ đóng góp tiền, người nào đóng trước thì nhập tiền vào cho người ta, lúc này cột STT sẽ hiện số thứ tự đóng tiền của người đó.
 
Cái yêu cầu bị kỳ đó tác giả có yêu cầu ở bài số 4 đó thầy NDU ơi!Em cũng thấy rất kỳ và rõ ràng là tự làm khó mình nhưng mọi người cố gắng giải để làm đề tài nâng cao trình độ cũng hay!Đã vậy lại còn yêu cầu không dùng code nữa đó!!$@!!Em có từng nghĩ qua là dùng hàm rank để xếp hạng theo thời gian nhập giá trị tiền ủng hộ nhưng cái vụ thời gian nhập giá trị này không biết dùng cách nào để gọi.Thầy có thể giúp với ý tưởng này được không?
Thời gian nhập liệu ở đâu mà có? Không lẽ bạn dùng Now()??? Không VBA không được.
 
Xem yêu cầu tại bài #4, tôi cải tiến thế này:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Clls As Range, k As Long
  If Not Intersect(Range("B2:B65536"), Target) Is Nothing Then
    Range([B65536].End(xlUp).Offset(1, 1), [C65536]).ClearContents
    For Each Clls In Target
      k = Evaluate("Max(C:C)")
      If Clls = "" Then
        Clls(, 2) = ""
      Else
        Clls(, 2) = k + 1
      End If
    Next Clls
  End If
End Sub
Các bạn test lại giùm! ---> Cho phép nhập nhầm có thể xóa sửa ---> Đương nhiên lúc này nhập sau sẽ có số TT lớn nhất
 

File đính kèm

Lần chỉnh sửa cuối:
Thời gian nhập liệu ở đâu mà có? Không lẽ bạn dùng Now()??? Không VBA không được.

Dĩ nhiên là không dùng hàm now được rồi!Nếu dùng VBA thì ý tưởng này cũng có thể giải quyết được vấn đề sửa giá trị sẽ không ảnh hưởng j.Tuy nhiên lại phải có cột phụ!
@thầy NDU: Code của thầy bị sai khi sửa lại số tiền ủng hộ rồi!KHi sửa thì thứ tự không thay đổi mới đúng ý đồ chứ!
 
Lần chỉnh sửa cuối:
@thầy NDU: Code của thầy bị sai khi sửa lại số tiền ủng hộ rồi!KHi sửa thì thứ tự không thay đổi mới đúng ý đồ chứ!
Như tôi nói ở trên: Sửa đồng nghĩa với nhập mới, STT sẽ thay đổi theo
Nếu bạn muốn STT này không đổi (tức đã có thỉ giũ nguyên) cũng làm được
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Clls As Range, k As Long
  If Not Intersect(Range("B2:B65536"), Target) Is Nothing Then
    Range([B65536].End(xlUp).Offset(1, 1), [C65536]).ClearContents
    For Each Clls In Target
      k = Evaluate("Max(C:C)")
      If Clls = "" Then
        Clls(, 2) = ""
      ElseIf Clls(, 2) = "" Then
        Clls(, 2) = k + 1
      End If
    Next Clls
  End If
End Sub
Vận cho phép xóa (xóa cột B thì cột C xóa theo)
 

File đính kèm

Xem yêu cầu tại bài #4, tôi cải tiến thế này:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Clls As Range, k As Long
  If Not Intersect(Range("B2:B65536"), Target) Is Nothing Then
    Range([B65536].End(xlUp).Offset(1, 1), [C65536]).ClearContents
    For Each Clls In Target
      k = Evaluate("Max(C:C)")
      If Clls = "" Then
        Clls(, 2) = ""
      Else
        Clls(, 2) = k + 1
      End If
    Next Clls
  End If
End Sub
Các bạn test lại giùm! ---> Cho phép nhập nhầm có thể xóa sửa ---> Đương nhiên lúc này nhập sau sẽ có số TT lớn nhất
1. Người ta ủng hộ trước, do mình nhập sai, giờ mình sửa lại mà sửa luôn cho người ta nhập cuối cùng là không hợp lý.
2. Nhập nhầm 1 dòng nào đó, xóa đi thì số thứ tự không đánh lại, số thứ tự không liên tục mà bị khuyết số vừa xóa.

Thử code này. Muốn xóa, sửa, copy thế nào thì tùy.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Del As Boolean
    On Error Resume Next
    If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
        For Each Cll In Intersect(Target, [B:B])
        If Cll.Value <> "" Then
            If Cll.Offset(, 1).Value = "" Then Cll.Offset(, 1).Value = WorksheetFunction.Max([C:C]) + 1
        Else
            Cll.Offset(, 1).ClearContents
            Del = True
        End If
        Next
    If Del = True Then
        For Each Cl In [C2:C65536].SpecialCells(2)
            Cl.Value = WorksheetFunction.Rank(Cl.Value, [C:C], 1)
        Next
    End If
End Sub
 

File đính kèm

Vẫn cho phép xóa (xóa cột B thì cột C xóa theo)

Em thấy nếu mà xoá B --> Xoá C như vậy thì 1 lúc sau thì STT chạy loạn hết cả, 1,2,3 nhập trước mà bị xoá rồi thì STT chỉ toàn là 4,5,6 trở lên, đúng ra lúc này 4,5,6 ---> 1,2,3. Nếu người dùng mà nhập liệu rồi xoá tuỳ tiện thì nhức đầu đây.
 
Như tôi nói ở trên: Sửa đồng nghĩa với nhập mới, STT sẽ thay đổi theo
Nếu bạn muốn STT này không đổi (tức đã có thỉ giũ nguyên) cũng làm được
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 ....
End Sub
Vận cho phép xóa (xóa cột B thì cột C xóa theo)

cái này thì ok rồi!Tuy nhiên theo em thầy đã xóa thứ tự ở cột B & C thì điều chỉnh lại thứ tự trong cột C sẽ hoàn thiện hơn nữa!
 
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Del As Boolean
    On Error Resume Next
    If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
        For Each Cll In Intersect(Target, [B:B])
        If Cll.Value <> "" Then
            If Cll.Offset(, 1).Value = "" Then Cll.Offset(, 1).Value = WorksheetFunction.Max([C:C]) + 1
        Else
            Cll.Offset(, 1).ClearContents
            Del = True
        End If
        Next
    If Del = True Then
        For Each Cl In [C2:C65536].SpecialCells(2)
            Cl.Value = WorksheetFunction.Rank(Cl.Value, [C:C], 1)
        Next
    End If
End Sub

Mình thấy Code của huuthang_bd lần này là hoàn hảo nhất, tranh luận 1 hồi mình là người tham gia cũng thấy loạn hết cả óc, đến lúc tác giả vào lại topic chẳng biết bài để tải nữa. --=0--=0--=0
 
2. Nhập nhầm 1 dòng nào đó, xóa đi thì số thứ tự không đánh lại, số thứ tự không liên tục mà bị khuyết số vừa xóa.
cái vụ khuyết số ấy tôi nghĩ cũng không quan trọng mấy, cùng lắm là thêm vòng lập nữa thôi
PHP:
With Range([C2], [C65536].End(xlUp))
  For Each Clls In .SpecialCells(2)
    i = i + 1
    Clls = WorksheetFunction.Rank(Clls, .Cells, 1)
  Next
End With
 

File đính kèm

-------
Để ý chổ này chú NDU ơi
Em chưa hiểu ý anh?
Để ý gì vậy anh?
Chắc anh muốn nói đến việc xóa toàn bộ cột B ---> Code bị treo, đúng không?
Vụ này cũng hơi hiếm nhưng không phải là không xảy ra
Anh thêm đoạn này vào nữa là xong!
PHP:
If Range("B:B").SpecialCells(2) Is Nothing Then Exit Sub
Toàn bộ code như sau:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Clls As Range, k As Long, i As Long
  On Error Resume Next
  If Not Intersect(Range("B2:B65536"), Target) Is Nothing Then
    If Range("B:B").SpecialCells(2) Is Nothing Then Exit Sub
    Range([B65536].End(xlUp).Offset(1, 1), [C65536]).ClearContents
    For Each Clls In Target
      k = Evaluate("Max(C:C)")
      If Clls = "" Then
        Clls(, 2) = ""
      ElseIf Clls(, 2) = "" Then
        Clls(, 2) = k + 1
      End If
    Next Clls
    With Range([C2], [C65536].End(xlUp))
      For Each Clls In .SpecialCells(2)
        i = i + 1
        Clls = WorksheetFunction.Rank(Clls, .Cells, 1)
      Next
    End With
  End If
End Sub
 
Lần chỉnh sửa cuối:
Em chưa hiểu ý anh?
Để ý gì vậy anh?
------
Bài này nôm na giống như danh sách tạm ứng lương của doanh nghiệp, DS có sẳn , điền số tiền của từng người vào không theo thứ tự.
Cách tốt nhất là cho phép xóa cột B nhưng không cho xóa cột C (để ít nhất khi nhìn vào để biết được rằng anh là người thứ mấy trong DS đã vào rồi lại ra => hết chối).
 
------
Bài này nôm na giống như danh sách tạm ứng lương của doanh nghiệp, DS có sẳn , điền số tiền của từng người vào không theo thứ tự.
Cách tốt nhất là cho phép xóa cột B nhưng không cho xóa cột C (để ít nhất khi nhìn vào để biết được rằng anh là người thứ mấy trong DS đã vào rồi lại ra => hết chối).
Đây là 1 yêu cầu riêng... hơi khác 1 chút
Nếu xóa cột B mà cột C vẫn giữ nguyên thì quá dể ---> Em nghĩ anh tự mình sửa được mà (xóa bớt code đi chứ khỏi cần thêm gì cả)
 
Đây là 1 yêu cầu riêng... hơi khác 1 chút
Nếu xóa cột B mà cột C vẫn giữ nguyên thì quá dể ---> Em nghĩ anh tự mình sửa được mà (xóa bớt code đi chứ khỏi cần thêm gì cả)
-----
Anh chỉ tham gia bài thôi, không có nhu cầu này, anh thì thực tế, xử lý đơn giản thôi ( làm tay quen rồi ).
 
Suy nghĩ lại thấy bài này không thể dùng Rank để đánh số thứ tự lại. Ví dụ STT gồm 1, 2, 3, 4, 9, 8. Sau khi dùng Rank xếp lại sẽ được 1, 2, 3, 4, 6, 6. Tạm sửa lại như thế này
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Del As Boolean
    On Error Resume Next
    If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
        For Each Cll In Intersect(Target, [B:B])
        If Cll.Value <> "" Then
            If Cll.Offset(, 1).Value = "" Then Cll.Offset(, 1).Value = WorksheetFunction.Max([C:C]) + 1
        Else
            Cll.Offset(, 1).ClearContents
            Del = True
        End If
        Next
    If Del = True Then
        For Each Cl In [C2:C65536].SpecialCells(2)
            Cl.Value = Cl.Value + WorksheetFunction.Rank(Cl.Value, [C:C], 1) / 1000
        Next
        For Each Cl In [C2:C65536].SpecialCells(2)
            Cl.Value = Cl.Value * 1000 Mod 1000
        Next
    End If
End Sub
 

File đính kèm

Anh gởi cho em bảng này em xem thử có đúng ý của em không?
(Trong bảng này nếu có tiền mà không có tên hoặc có tên mà không có tiền thì nó sẽ lơ không thèm đếm)

Nếu đúng cho anh xin lời cám ơn nhé.
 

File đính kèm

Anh gởi cho em bảng này em xem thử có đúng ý của em không?
(Trong bảng này nếu có tiền mà không có tên hoặc có tên mà không có tiền thì nó sẽ lơ không thèm đếm)

Nếu đúng cho anh xin lời cám ơn nhé.

Bạn nên đọc kỹ yêu cầu trước khi post bài mới chứ!
 
Đánh số thứ tự có điều kiện VBA

Tiện thể bào của các bạn cho mình hỏi luồn vì minh không biết VBA nên nhờ các bạn giúp cho có file đính kèm
 

File đính kèm

Tiện thể bào của các bạn cho mình hỏi luồn vì minh không biết VBA nên nhờ các bạn giúp cho có file đính kèm
Chắc bạn cho rằng những thành viên trên diễn đàn là thần tiên nên có thể đọc được suy nghĩ của bạn. Nếu vậy thì bạn kiên nhẫn chờ nha.
 

File đính kèm

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

Back
Top Bottom