vieclamtrenmang
Thành viên mới
- Tham gia
- 13/4/14
- Bài viết
- 6
- Được thích
- 0
em muốn đánh số thứ tự cho từng dòng từ 2000 đến 60.000 thì làm thế nào để nhanh nhất vậy ?
Bạn dùng vba. Đưa file nên tôi giúp!em muốn đánh số thứ tự cho từng dòng từ 2000 đến 60.000 thì làm thế nào để nhanh nhất vậy ?
em muốn đánh số thứ tự cho từng dòng từ 2000 đến 60.000 thì làm thế nào để nhanh nhất vậy ?
Dạ, tại từ ngày nghiên cứu VBA giờ thấy tình huống nào cũng chỉ nghĩ cách giải quyết bằng VBA Thầy ạ!Cái gì mà phải VBA dữ vậy.
Gõ 1 vào ô đâu tiên
Excel 2003 vào Data - Fill - Fill series, Excel 2010 vào Home - Edit - Fill Series
Step 1, stop 60000, chọn Column, chọn linear, OK
Chỗ màu đỏ có lẽ thầy viết nhầm, phải là: Edit - Fill - Fill series ạ!Gõ 1 vào ô đâu tiên
Excel 2003 vào Data - Fill - Fill series
Step 1, stop 60000, chọn Column, chọn linear, OK
Giả sử bạn muốn đánh số thứ tự từ ô A2000 đến ô A60000 chẳng hạn, code sẽ như sau:em muốn đánh số thứ tự cho từng dòng từ 2000 đến 60.000 thì làm thế nào để nhanh nhất vậy ?
Bạn tùy biến cho phù hợp nhé!Sub Danh_STT()
Dim i As Double
For i = 2000 To 60000
Cells(i, "A") = i
Next i
End Sub
Thủ tục của thầy đúng là nhanh hơn của em rất nhiều. Nhưng thầy ơi nếu vẫn sử dụng thủ tục của thầy nhưng muốn đánh STT bắt đầu từ số 2000 thì phải sửa như thế nào ạ? Hoặc có thể dùng thủ tục nào khác không? Em dùng lệnh For nên chậm thật.Vụ 2003 là tôi nhớ nhầm. Tuy nhiên dùng công cụ có sẵn (nếu phù hợp) bao giờ cũng nhanh hơn VBA, nhất là vòng lặp đánh trực tiếp lên từng ô. Nếu dùng VBA để đánh số thứ tự (trong 1 thủ tục nào đó, chứ không phải viết riêng 1 thủ tục chỉ để đánh số thứ tự) thì chỉ 1 câu lệnh:
Range("A2:A60000").value = Evaluate("=row(R:R)")
Tạm có thể so sánh với Fill series khi nhấn nút OK
Làm bài toán cộng, 1 cộng mấy bằng 2000?Thủ tục của thầy đúng là nhanh hơn của em rất nhiều. Nhưng thầy ơi nếu vẫn sử dụng thủ tục của thầy nhưng muốn đánh STT bắt đầu từ số 2000 thì phải sửa như thế nào ạ? Hoặc có thể dùng thủ tục nào khác không? Em dùng lệnh For nên chậm thật.
Dạ, cộng 1999 ạ!, đáp án:Làm bài toán cộng, 1 cộng mấy bằng 2000?
Cảm ơn Thầy rất nhiều ạ!Sub Danh_STT()
Range("A2:A60000").Value = Evaluate("=row(R:R)+1999")
End Sub