Cần giúp viết Code tự động đánh số thứ tự theo phân cách bởi các dòng màu vàng (1 người xem)

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

hung2412

Thành viên tích cực
Tham gia
5/8/08
Bài viết
934
Được thích
240
Giới tính
Nam
Xin chào các bạn GPE!
Nhờ các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Bảng tính Excel được phân cách bởi các dòng màu vàng như thế này:
1.jpg
Cột A là cột số thứ tự => Có Code nào đánh số thứ tự trên cột A theo phân cách bởi các dòng màu vàng hay không?
Ví dụ:
- Từ dòng 7 (Dòng này nằm dưới dòng màu vàng) đến dòng 10 (Dòng này nằm trên dòng màu vàng). Từ dòng 7 đến dòng 10 không có dòng nào màu vàng cả => Đánh số thứ tự 1, 2, 3,... trên cột A từ dòng 7 đến dòng 10.
- Từ dòng 12 (Dòng này nằm dưới dòng màu vàng) đến dòng 18 (Dòng này nằm trên dòng màu vàng). Từ dòng 12 đến dòng 18 không có dòng nào màu vàng cả => Đánh số thứ tự 1, 2, 3,... trên cột A từ dòng 12 đến dòng 18.
Mong các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.
 

File đính kèm

Xin chào các bạn GPE!
Nhờ các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Bảng tính Excel được phân cách bởi các dòng màu vàng như thế này:
View attachment 134084
Cột A là cột số thứ tự => Có Code nào đánh số thứ tự trên cột A theo phân cách bởi các dòng màu vàng hay không?
Ví dụ:
- Từ dòng 7 (Dòng này nằm dưới dòng màu vàng) đến dòng 10 (Dòng này nằm trên dòng màu vàng). Từ dòng 7 đến dòng 10 không có dòng nào màu vàng cả => Đánh số thứ tự 1, 2, 3,... trên cột A từ dòng 7 đến dòng 10.
- Từ dòng 12 (Dòng này nằm dưới dòng màu vàng) đến dòng 18 (Dòng này nằm trên dòng màu vàng). Từ dòng 12 đến dòng 18 không có dòng nào màu vàng cả => Đánh số thứ tự 1, 2, 3,... trên cột A từ dòng 12 đến dòng 18.
Mong các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.
Viết tạm thế này, hình như không chính xác hết
PHP:
Sub abc()
Dim r As Long, n As Long
For r = 7 To [B65536].End(3).Row
   If Cells(r, 2) <> "" Then
      n = n + 1
      Cells(r, 1) = n
   Else
      n = 0
   End If
Next
End Sub
 
Upvote 0
Xin chào các bạn GPE!
Nhờ các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Bảng tính Excel được phân cách bởi các dòng màu vàng như thế này:
View attachment 134084
Cột A là cột số thứ tự => Có Code nào đánh số thứ tự trên cột A theo phân cách bởi các dòng màu vàng hay không?
Ví dụ:
- Từ dòng 7 (Dòng này nằm dưới dòng màu vàng) đến dòng 10 (Dòng này nằm trên dòng màu vàng). Từ dòng 7 đến dòng 10 không có dòng nào màu vàng cả => Đánh số thứ tự 1, 2, 3,... trên cột A từ dòng 7 đến dòng 10.
- Từ dòng 12 (Dòng này nằm dưới dòng màu vàng) đến dòng 18 (Dòng này nằm trên dòng màu vàng). Từ dòng 12 đến dòng 18 không có dòng nào màu vàng cả => Đánh số thứ tự 1, 2, 3,... trên cột A từ dòng 12 đến dòng 18.
Mong các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.
Thử thêm một cách nữa
Mã:
Public Sub STT()
Dim r As Long, k

With Sheet1
For r = 6 To 50
If .Range("A" & r).Interior.ColorIndex = 6 Then
k = 0
Else
k = k + 1
.Range("A" & r).Value = k
End If
Next r
End With

End Sub
 
Upvote 0
Viết tạm thế này, hình như không chính xác hết
PHP:
Sub abc()
Dim r As Long, n As Long
For r = 7 To [B65536].End(3).Row
   If Cells(r, 2) <> "" Then
      n = n + 1
      Cells(r, 1) = n
   Else
      n = 0
   End If
Next
End Sub

Đang "vui" với mảng, sao tự nhiên chuyển qua chạy trên Sheet vậy ta?
"Câu độ" hả?
 
Upvote 0
Đang "vui" với mảng, sao tự nhiên chuyển qua chạy trên Sheet vậy ta?
"Câu độ" hả?
Lâu lâu đổi kiểu coi có gì hay không đó mà. Cũng tính xài mảng đó chứ. Nhưng lười quá. Vậy giờ chuẩn bị viết 1 bài mảng thôi. Sắp lên sao nữa rồi kìa anh ơi. ka ka ka
 
Upvote 0
Code đánh số thứ tự (01, 02, 03,...) liên tục trên cột A từ dòng 7 đến dòng cuối mà bỏ qua các dòng màu vàng.
Ví dụ:
[TABLE="class: cms_table, width: 150"]
[TR]
[TD="align: center"]Cột A[/TD]
[/TR]
[TR]
[TD="align: center"]Ô trống màu vàng[/TD]
[/TR]
[TR]
[TD="align: center"]1[/TD]
[/TR]
[TR]
[TD="align: center"]2[/TD]
[/TR]
[TR]
[TD="align: center"]3[/TD]
[/TR]
[TR]
[TD="align: center"]Ô trống màu vàng[/TD]
[/TR]
[TR]
[TD="align: center"]4[/TD]
[/TR]
[TR]
[TD="align: center"]5[/TD]
[/TR]
[TR]
[TD="align: center"]6[/TD]
[/TR]
[TR]
[TD="align: center"]7[/TD]
[/TR]
[TR]
[TD="align: center"]8[/TD]
[/TR]
[TR]
[TD="align: center"]Ô trống màu vàng[/TD]
[/TR]
[TR]
[TD="align: center"]9[/TD]
[/TR]
[TR]
[TD="align: center"]10[/TD]
[/TR]
[TR]
[TD="align: center"]11[/TD]
[/TR]
[/TABLE]

PHP:
Public Sub STT()
Dim r As Long, k
For r = 6 To 50
   If Range("A" & r).Interior.ColorIndex <> 6 Then
       k = k + 1
       Range("A" & r).Value = k
   End If
Next
End Sub
 
Upvote 0
Cũng may là mình không nằm trong BQT chứ nếu không những bài nào spam thì mình xoá thẳng tay khỏi cần giải thích gì ráo.
 
Upvote 0
Code đánh số thứ tự (01, 02, 03,...) liên tục trên cột A từ dòng 7 đến dòng cuối mà bỏ qua các dòng màu vàng.
Ví dụ:
[TABLE="class: cms_table, width: 150"]
[TR]
[TD="align: center"]Cột A[/TD]
[/TR]
[TR]
[TD="align: center"]Ô trống màu vàng[/TD]
[/TR]
[TR]
[TD="align: center"]1[/TD]
[/TR]
[TR]
[TD="align: center"]2[/TD]
[/TR]
[TR]
[TD="align: center"]3[/TD]
[/TR]
[TR]
[TD="align: center"]Ô trống màu vàng[/TD]
[/TR]
[TR]
[TD="align: center"]4[/TD]
[/TR]
[TR]
[TD="align: center"]5[/TD]
[/TR]
[TR]
[TD="align: center"]6[/TD]
[/TR]
[TR]
[TD="align: center"]7[/TD]
[/TR]
[TR]
[TD="align: center"]8[/TD]
[/TR]
[TR]
[TD="align: center"]Ô trống màu vàng[/TD]
[/TR]
[TR]
[TD="align: center"]9[/TD]
[/TR]
[TR]
[TD="align: center"]10[/TD]
[/TR]
[TR]
[TD="align: center"]11[/TD]
[/TR]
[/TABLE]

PHP:
Public Sub STT()
Dim r As Long, k
For r = 6 To 50
   If Range("A" & r).Interior.ColorIndex <> 6 Then
       k = k + 1
       Range("A" & r).Value = k
   End If
Next
End Sub
tôi không hiểu nha, hầu như bài nào bạn đưa lên rồi tự bạn giải như vậy hỏi làm gì? Bài này theo tôi hiểu như cách bạn trình bày là ô trống màu vàng có nghĩa là có 2đk, mà code của bạn chỉ có 1đk
 
Upvote 0
tôi không hiểu nha, hầu như bài nào bạn đưa lên rồi tự bạn giải như vậy hỏi làm gì?
Không phải là tôi tự đưa lên diễn đàn rồi tự giải đâu ạ. Sau một loạt bài hướng dẫn của các bạn thành viên => Tôi đúc kết lại theo cách mà tôi có thể áp dụng trong thực tiễn.
Bài này theo tôi hiểu như cách bạn trình bày là ô trống màu vàng có nghĩa là có 2đk, mà code của bạn chỉ có 1đk
Đúng là có 2 điều kiện mà Code của tôi có 1 điều kiện => Là vì tôi thấy Code thế là đủ dùng rồi ạ.
 
Upvote 0
tôi không hiểu nha, hầu như bài nào bạn đưa lên rồi tự bạn giải như vậy hỏi làm gì?...

Tôi thì không hiểu tại sao đến giờ này bạn mới lên tiếng là "không hiểu".
Chỉ cần đọc vài bài của chủ thớt là đã biết đương sự lượm đâu đó ra một folder có một đống files rồi nảy ra ý tưởng muốn vọc thử xem những trường hợp ấy thì code ra sao.

Chỉ giản dị là chủ thớt không biết cách phân tích vấn đề nên không tự khởi sự code được mà phải nhờ bà con viết giùm rồi sửa lại.

Cái này lỗi tại bà con thích code chứ tôi nghĩ là ai cũng biết ý chủ thớt mà.
 
Upvote 0
Viết tạm thế này, hình như không chính xác hết
PHP:
Sub abc()
Dim r As Long, n As Long
For r = 7 To [B65536].End(3).Row
   If Cells(r, 2) <> "" Then
      n = n + 1
      Cells(r, 1) = n
   Else
      n = 0
   End If
Next
End Sub
Tôi muốn ở dạng công thức (Không phải số chết) thì làm thế nào hả bạn?
 
Upvote 0
Thử thêm một cách nữa
Mã:
Public Sub STT()
Dim r As Long, k

With Sheet1
For r = 6 To 50
If .Range("A" & r).Interior.ColorIndex = 6 Then
k = 0
Else
k = k + 1
.Range("A" & r).Value = k
End If
Next r
End With

End Sub
Bạn ơi, tôi muốn số thứ tự thể hiện công thức (Không phải số chết) thì làm thế nào hả bạn?
 
Upvote 0
Bạn ơi, tôi muốn số thứ tự thể hiện công thức (Không phải số chết) thì làm thế nào hả bạn?
Chắc có nhiều cách, bạn tham khảo một cách này xem sao
Mã:
Public Sub STT()
Dim r As Long

With Sheet1
For r = 6 To 50
If .Range("A" & r).Interior.ColorIndex <> 6 Then
.Range("A" & r) = "=R[-1]C+1"
End If
Next r
End With

End Sub
 
Upvote 0
Chắc có nhiều cách, bạn tham khảo một cách này xem sao
Mã:
Public Sub STT()
Dim r As Long

With Sheet1
For r = 6 To 50
If .Range("A" & r).Interior.ColorIndex <> 6 Then
.Range("A" & r) = "=R[-1]C+1"
End If
Next r
End With

End Sub
Cảm ơn bạn đã tận tình chỉ giáo. Còn trong trường hợp Code đánh số thứ tự (01, 02, 03,...) liên tục trên cột A từ dòng 7 đến dòng cuối mà bỏ qua các dòng màu vàng như vầy (Số công thức, không phải là số chết):
[TABLE="class: cms_table_cms_table, width: 150"]
[TR]
[TD="align: center"]Cột A[/TD]
[/TR]
[TR]
[TD="align: center"]Ô trống màu vàng[/TD]
[/TR]
[TR]
[TD="align: center"]1[/TD]
[/TR]
[TR]
[TD="align: center"]2[/TD]
[/TR]
[TR]
[TD="align: center"]3[/TD]
[/TR]
[TR]
[TD="align: center"]Ô trống màu vàng[/TD]
[/TR]
[TR]
[TD="align: center"]4[/TD]
[/TR]
[TR]
[TD="align: center"]5[/TD]
[/TR]
[TR]
[TD="align: center"]6[/TD]
[/TR]
[TR]
[TD="align: center"]7[/TD]
[/TR]
[TR]
[TD="align: center"]8[/TD]
[/TR]
[TR]
[TD="align: center"]Ô trống màu vàng[/TD]
[/TR]
[TR]
[TD="align: center"]9[/TD]
[/TR]
[TR]
[TD="align: center"]10[/TD]
[/TR]
[TR]
[TD="align: center"]11[/TD]
[/TR]
[/TABLE]

=> Thì làm thế nào ạ?
 
Upvote 0

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

Back
Top Bottom