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

Liên hệ QC

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

khohieuqua

Thành viên mới
Tham gia
14/3/08
Bài viết
15
Được thích
0
:=\+ Mấy bác ơi mình mới biết về VBA có chút à, mong mấy bác chỉ cách gán địa chỉ ô hiện hành vào VBA bằng cách chọn chuột vào một ô bất kì thì chương trình sẽ tự điền số thứ tự từ ô ta chọn trở đi.
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn nên gửi file ví dụ hay mẫu gì đó lên, chứ nói không kiểu này thì bí quá? Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Cái này ghi macro được nè:
PHP:
Sub SoTT()
    If Selection.Count > 1 Then MsgBox "Chon mot o thoi!": Exit Sub
    On Error GoTo Thoat
    NEnd = InputBox("Danh STT toi bao nhieu?") * 1
    ActiveCell = 1
    Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(NEnd - 1, 0)).Select
    Selection.FormulaR1C1 = "=R[-1]C+1"
Thoat:     Exit Sub
End Sub
 
Upvote 0
Mấy bác ơi mình mới biết về VBA có chút à, mong mấy bác chỉ cách gán địa chỉ ô hiện hành vào VBA bằng cách chọn chuột vào một ô bất kì thì chương trình sẽ tự điền số thứ tự từ ô ta chọn trở đi.

Câu hỏi quá khó bạn hơi.
Như thế nào là gán địa chỉ ô hiện hành vào VBA, Giữa điền số thứ tự với gán địa chỉ của ô có liên hệ gì với nhau không?

Điền số thứ tự từ ô ta chọn trở đi có phải là ngay ô được chọn ta sẽ điền số 1 và điền cho đến dòng thứ 65536 à?

Câu của bạn có quá nhiều cách hiểu, tùy theo suy nghĩ của mỗi người mà sẽ có câu trả lời khác nhau, nhưng chưa chắc đúng với yêu cầu của bạn. Mong sẽ nhận được file VD minh họa từ bạn để mọi người dễ giúp bạn hơn.
 
Upvote 0
Sub SoTT()
If Selection.Count > 1 Then MsgBox "Chon mot o thoi!": Exit Sub
On Error GoTo Thoat
NEnd = InputBox("Danh STT toi bao nhieu?") * 1
ActiveCell = 1
Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(NEnd - 1, 0)).Select
Selection.FormulaR1C1 = "=R[-1]C+1"
Thoat: Exit Sub
End Sub



Cám ơn bạn ngocmaipretty nhiều đoạn code của bạn đúng ý của mình rồi.
 
Lần chỉnh sửa cuối:
Upvote 0
Giới thiệu thêm 1 cách đánh số tự động nhanh đối với 1 vùng đã chọn:

Sub autoNum()
Dim ra As Range
Dim i As Long
Set ra = Selection
i = ra.Rows.Count
ra = Application.Evaluate("Row(1:" & i & ")")
End Sub


-hvl-
 
Upvote 0
:=\+ Mấy bác ơi mình mới biết về VBA có chút à, mong mấy bác chỉ cách gán địa chỉ ô hiện hành vào VBA bằng cách chọn chuột vào một ô bất kì thì chương trình sẽ tự điền số thứ tự từ ô ta chọn trở đi.
Code của bạn là:
PHP:
Sub dowhile_SOTT_COT()
  i = 1
  Do While i <= 30
      Cells(i + 1, 1) = i
      i = i + 1
  Loop
End Sub
Chỉ cần sửa lại 1 tí:
PHP:
Sub dowhile_SOTT_COT()
  i = 1
  Do While i <= 30
    ActiveCell.Offset(i - 1) = i
    i = i + 1
   Loop
End Sub
 
Upvote 0
các bác cho em hỏi là:
em có 1 range trong đó có những merge khác nhau và em muốn đánh STT cho range đó thì code sẽ như thế nào ạ.khả năng còn kém em nghĩ mãi mà ko ra.cảm ơn các bác nhiều !
 
Upvote 0
dạ vâng.em thiếu sót quá
tức là sau một hồi sử lí số liệu dùng rất nhiều macro em được bảng tính trên.
và em muốn đánh số thứ tự cho range(cells(26,3),cells(25+a,3)) gồm nhiều marge ạ.
 

File đính kèm

Upvote 0
dạ vâng.em thiếu sót quá
tức là sau một hồi sử lí số liệu dùng rất nhiều macro em được bảng tính trên.
và em muốn đánh số thứ tự cho range(cells(26,3),cells(25+a,3)) gồm nhiều marge ạ.

Chỉ có bạn mới biết rõ điều kiện để merge cells, vì thế, bạn cho STT vào ô bắt đầu trước khi merge là xong.
 
Upvote 0
Bạn thử code như này xem
Mã:
Public Sub GPE()
Dim I As Long
    [C26] = 1
    For I = 27 To 97
        Range("C" & I).Value = Application.Max(Range("C26:C" & I - 1)) + 1
    Next I
End Sub
dạo này cv bận quá lên rep các bác chậm.
em cảm ơn bác nhé.đúng cái em cần.à mà em chưa hiểu thuật toán của bác ntn.thông não
 
Upvote 0
Web KT

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

Back
Top Bottom