VD: C7 có dữ liệu thì là 1Bạn ơi, cho hỏi có phải đánh số thứ tự từ A7? Và số từ A7 là 1 và số cuối cùng sẽ nhận giá trị từ C7 phải không?
Ví dụ: C7 là 450 thì đánh số từ A7 là từ 1 đến 450 phải vậy không?
Có đưa file lên thi ít ra cũng có tí dữ liệu để người ta còn mường tượng ---> 1 cái file trống không, ai biết gì đâu mà làmVD: C7 có dữ liệu thì là 1
C8 có dữ liệu thì là 2
C10 có dữ liệu thì là 3
Có dữ liệu là có STT mà tăng dần bạn.
sorry,sorry,sorry,sorry,sorry,sorry,sorry,sorry,sorry,sorry,sorry. File đâycó đưa file lên thi ít ra cũng có tí dữ liệu để người ta còn mường tượng ---> 1 cái file trống không, ai biết gì đâu mà làm
(mặc dù tôi cũng hơi hiểu ý nhưng gặp dạng file đính kèm kiểu này thì cảm thấy rất bực mình)
VD: C7 có dữ liệu thì là 1
C8 có dữ liệu thì là 2
C10 có dữ liệu thì là 3
Có dữ liệu là có STT mà tăng dần bạn.
Nhập công thức này vào cell A7:sorry,sorry,sorry,sorry,sorry,sorry,sorry,sorry,sorry,sorry,sorry. File đây
=IF(C7="","",COUNTA($C$7:$C7))
Thì vầy đi:Chính xác công thức thì OK, nhưng em muốn code anh NDU ơi!. Cảm ơn
Sub STT()
Dim SrcRng As Range, Arr, i As Long, n As Long
On Error Resume Next
Set SrcRng = Range([C7], [C65536].End(xlUp))
Arr = SrcRng.Value
For i = 1 To UBound(Arr, 1)
If Arr(i, 1) <> "" Then
n = n + 1
Arr(i, 1) = n
End If
Next
SrcRng.Offset(, -2).Value = Arr
End Sub
sorry,sorry,sorry,sorry,sorry,sorry,sorry,sorry,sorry,sorry,sorry. File đây
Sub FillSeries()
Application.ScreenUpdating = False
Dim Rng As Range, Cls As Range
Set Rng = Range(Sheet1.[C7], Sheet1.[C5000].End(xlUp))
Rng.Offset(, -2).ClearContents
For Each Cls In Rng
If Cls <> "" Then Cls.Offset(, -2) = WorksheetFunction.Max(Rng.Offset(, -2)) + 1
Next
Application.ScreenUpdating = True
End Sub
Đã dùng code rồi mà còn WorksheetFunction mà chi hổng biết, chỉ tổ chậm hơn thôiBạn thử code này xem:
PHP:If Cls <> "" Then Cls.Offset(, -2) = WorksheetFunction.Max(Rng.Offset(, -2)) + 1
Đã dùng code rồi mà còn WorksheetFunction mà chi hổng biết, chỉ tổ chậm hơn thôi
Nói về NGẮN thì cái này mới là NGẮN đây:Đúng là nhìn vào code thì ngắn hơn,
Sub STT()
With Range([C7], [C65536].End(xlUp)).Offset(, -2)
.Value = "=IF(RC[2]="""","""",COUNTA(R7C3:RC3))"
.Value = .Value
End With
End Sub
Bác Ơi, vậy muốn đánh số thứ tự theo ngày thì thế nào bác. Thêm 1 cột ngày nữa, và STT đánh theo ngày đó, hết ngày trước thì end và sang ngày mới thì đánh lại từ đầu.Nói về NGẮN thì cái này mới là NGẮN đây:
Ẹc... Ẹc...PHP:Sub STT() With Range([C7], [C65536].End(xlUp)).Offset(, -2) .Value = "=IF(RC[2]="""","""",COUNTA(R7C3:RC3))" .Value = .Value End With End Sub
Tuy nhiên, ĐƠN GIẢN không tương đương với TỐC ĐỘ (mảng là vô địch)
Nói về NGẮN thì cái này mới là NGẮN đây:
Ẹc... Ẹc...PHP:Sub STT() With Range([C7], [C65536].End(xlUp)).Offset(, -2) .Value = "=IF(RC[2]="""","""",COUNTA(R7C3:RC3))" .Value = .Value End With End Sub
Tuy nhiên, ĐƠN GIẢN không tương đương với TỐC ĐỘ (mảng là vô địch)
Sub STT()
With Range([b5], [b65536].End(xlUp)).Offset(, 1)
.Value = "=IF(RC2="""","""",""CC_"" & COUNTA(R5C2:RC2))"
End With
End Sub
Thì vầy đi:
PHP:Sub STT() Dim SrcRng As Range, Arr, i As Long, n As Long On Error Resume Next Set SrcRng = Range([C7], [C65536].End(xlUp)) Arr = SrcRng.Value For i = 1 To UBound(Arr, 1) If Arr(i, 1) <> "" Then n = n + 1 Arr(i, 1) = n End If Next SrcRng.Offset(, -2).Value = Arr End Sub