bác cho em hỏi vậy nếu muốn đánh số thứ tự ở cột G từ ô G2 đổ xuống cho những ô có đánh dấu ở cột H thì như nào ạ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)
Thứ nhất: Bạn phải tìm ra dòng cuối của cột 'G' (cột cần đánh số TT)bác cho em hỏi vậy nếu muốn đánh số thứ tự ở cột G từ ô G2 đổ xuống cho những ô có đánh dấu ở cột H thì như nào ạ
Các sản phẩm khác có đếm hay không?
Em gặp vấn đề là: Cột B (Sản phẩm) có 60.000 dòng. Cột A đánh số thứ tự nếu sản phẩm là "B" Vì số lượng dòng quá lớn nên dùm hàm IF+Max sẽ làm file chạy rất chậm, nên viết VBA có nhanh hơn không ạ, nhờ các anh/ chị chỉ giúp code VBA
dùng countif thử xemCác sản phẩm khác có đếm hay không?
Không anh, em cần hỗ trợ đếm theo 1 điều kiện có sẵn!
Bạn thử code dưới đâyCác sản phẩm khác có đếm hay không?
Không anh, em cần hỗ trợ đếm theo 1 điều kiện có sẵn!
Sub Stt()
Dim Nguon, Kq
Dim DieuKien
Dim i, j, k
With Sheet1
Nguon = .Range("B2", .Range("B1000000").End(xlUp))
DieuKien = "B"
k = UBound(Nguon)
ReDim Kq(1 To k, 1 To 1)
For i = 1 To k
If Nguon(i, 1) = DieuKien Then
j = j + 1
Kq(i, 1) = j
End If
Next i
.Range("A2").Resize(k, 1).ClearContents
.Range("A2").Resize(k, 1) = Kq
End With
End Sub
Tại A2 thử sử dụng công thức sau xem có khá hơn không:
Em gặp vấn đề là: Cột B (Sản phẩm) có 60.000 dòng. Cột A đánh số thứ tự nếu sản phẩm là "B" Vì số lượng dòng quá lớn nên dùm hàm IF+Max sẽ làm file chạy rất chậm, nên viết VBA có nhanh hơn không ạ, nhờ các anh/ chị chỉ giúp code VBA
Bạn thử code dưới đây
Mã:Sub Stt() Dim Nguon, Kq Dim DieuKien Dim i, j, k With Sheet1 Nguon = .Range("B2", .Range("B1000000").End(xlUp)) DieuKien = "B" k = UBound(Nguon) ReDim Kq(1 To k, 1 To 1) For i = 1 To k If Nguon(i, 1) = DieuKien Then j = j + 1 Kq(i, 1) = j End If Next i .Range("A2").Resize(k, 1).ClearContents .Range("A2").Resize(k, 1) = Kq End With End Sub
Bạn thử code dưới đây
Mã:Sub Stt() Dim Nguon, Kq Dim DieuKien Dim i, j, k With Sheet1 Nguon = .Range("B2", .Range("B1000000").End(xlUp)) DieuKien = "B" k = UBound(Nguon) ReDim Kq(1 To k, 1 To 1) For i = 1 To k If Nguon(i, 1) = DieuKien Then j = j + 1 Kq(i, 1) = j End If Next i .Range("A2").Resize(k, 1).ClearContents .Range("A2").Resize(k, 1) = Kq End With End Sub
Thầy ơi cho e hỏi làm thế nào cho code này nó tự động chạy ạ!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)
cái này thì phải làm trong phần sự kiện. Tốt nhất là bạn gửi file lên để mọi người còn giúp bạn.Thầy ơi cho e hỏi làm thế nào cho code này nó tự động chạy ạ!
E cảm ơn thầy giáo, e có file này e muốn lập báo cáo chi tiết dựa vào dữ liệu trên sheet "PS" để lập vào sổ chi tiết công nợ phải thu, công nợ phải trả, và sổ kho. e nhờ các thầy giúp e code với ạ,cái này thì phải làm trong phần sự kiện. Tốt nhất là bạn gửi file lên để mọi người còn giúp bạn.
E cảm ơn thầy giáo, e có file này e muốn lập báo cáo chi tiết dựa vào dữ liệu trên sheet "PS" để lập vào sổ chi tiết công nợ phải thu, công nợ phải trả, và sổ kho. e nhờ các thầy giúp e code với ạ,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)
Bạn đưa bài vào sai chủ đề rồi. Vui lòng bạn lập chủ đề mới và trình bày rõ bạn cần giúp những gì, ví dụ như sổ chi tiết công nợ phải thu, công nợ phải trả, và sổ kho dữ liệu được lấy như thế nào từ sheet!PSE cảm ơn thầy giáo, e có file này e muốn lập báo cáo chi tiết dựa vào dữ liệu trên sheet "PS" để lập vào sổ chi tiết công nợ phải thu, công nợ phải trả, và sổ kho. e nhờ các thầy giúp e code với ạ,
bác ơi cái đoạn này, đúng với số thôi, nhưng nếu số nó chỉ dạng thập phân 2 số 00-99 sau đó phải thay đổi sang A1=> A9, hết A9 lại sang B1=> B9... tiếp tục đếm tiếp đến hết, thì làm sao hả bác.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)