Giúp code gạch dòng kẽ theo điều kiện mã hàng xuất hiện 2 lần trở Lên

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Văn Toàn 1996

Thành viên hoạt động
Tham gia
5/6/23
Bài viết
102
Được thích
22
Xin chào tất cả mọi người. Chúc mọi người 1 kỳ nghĩ lễ vui vẻ Hạnh phúc bên gia đình. Hôm nay em mang đến 1 câu hỏi như sau. Em cần đóng khung trong vùng C1:d17 với điều kiện là Nếu dòng mã hàng xuất hiện từ 2 dòng trở lên ( giống như hình mô tả bên dưới ). Em xin chân thành cảm ơn


1693754314944.png
 

File đính kèm

  • gach chan new.xlsm
    8.8 KB · Đọc: 7
Lần chỉnh sửa cuối:
Giải pháp
Đang tháng Bảy mà...
Thử code này nhé . . .
Theo tôi thì dạng câu hỏi này cũng thường gặp, hiểu nôm na là " nhóm các mã hàng có phát sinh" (từ 2 trở lên) cho dễ nhìn
PHP:
Option Explicit
Sub gachchan()
Dim lr&, ce As Range
lr = Cells(Rows.Count, "C").End(xlUp).Row
Range("C3:D" & lr).Borders.LineStyle = xlNone
For Each ce In Range("C3:C" & lr)
    If ce <> ce.Offset(-1, 0) And ce = ce.Offset(1, 0) Then
        ce.Resize(1, 2).Borders(xlEdgeTop).LineStyle = xlContinuous
    ElseIf ce = ce.Offset(-1, 0) And ce <> ce.Offset(1, 0) Then
        ce.Resize(1, 2).Borders(xlEdgeBottom).LineStyle = xlContinuous
    End If
Next
End Sub
Ủa, thế là kẻ thẳng vào dữ liệu ban đầu hay là ra 1 vùng khác vậy?
 
Upvote 0
Ủa, thế là kẻ thẳng vào dữ liệu ban đầu hay là ra 1 vùng khác vậy?
Đáng lẽ bạn phải hỏi: đóng xong thì được cái gì?

Điển hình: Dòng "5 Nho" xuất hiện chỉ 1 lần, nhưng trông kết quả thì có khác gì đóng khung đâu?
Quả là đầu óc Ê-Ai nó cao hơn Ê-Kia, Ê-Nọ mấy bậc.
 
Upvote 0
Đáng lẽ bạn phải hỏi: đóng xong thì được cái gì?

Điển hình: Dòng "5 Nho" xuất hiện chỉ 1 lần, nhưng trông kết quả thì có khác gì đóng khung đâu?
Quả là đầu óc Ê-Ai nó cao hơn Ê-Kia, Ê-Nọ mấy bậc.
Cháu đang tính nói. có vẻ data và kết quả tào lao thì phải. Có kết quả mẫu để người đọc hiểu được mà có vẻ không được làm tử tế lắm
 
Upvote 0
Xin chào tất cả mọi người. Chúc mọi người 1 kỳ nghĩ lễ vui vẻ Hạnh phúc bên gia đình. Hôm nay em mang đến 1 câu hỏi như sau. Em cần đóng khung trong vùng B5:D100 ( Bơ 1 : Đê 100 ) với điều kiện là Nếu dòng mã hàng xuất hiện từ 2 dòng trở lên ( giống như hình mô tả bên dưới ). Em xin chân thành cảm ơn


View attachment 294464Giú
Dưới mã số 11, dòng 19, có cần gạch đóng khung không?

Có thể dùng định dạng có điều kiện.
 
Upvote 0
Cháu đang tính nói. có vẻ data và kết quả tào lao thì phải. Có kết quả mẫu để người đọc hiểu được mà có vẻ không được làm tử tế lắm
Data lẫn kết quả ví dụ đều không tào lao. Data được sắp xếp theo mã hàng, điều này đúng. Kết quả ví dụ cũng đúng như yêu cầu.

Chỉ có chính yêu cầu tào lao. Như tôi nêu ra ở bài #3, dùng cách kẻ khung chả phân biệt được cái gì cả.
Bài ví dụ mã hàng là 1, 2, 3,... cho nên dễ nhận. Nếu mã hàng là một sọc dài thì mấy cái "khung" ấy cho thấy cái gì?

1693749344102.png

Đáng ra tô màu dễ nhìn hơn. Nhưng có lẽ trí tuệ Ê-Ai nó tính ra vậy.
 
Lần chỉnh sửa cuối:
Upvote 0
Ủa, thế là kẻ thẳng vào dữ liệu ban đầu hay là ra 1 vùng khác vậy?
kẽ thẳng vào ban đầu
Bài đã được tự động gộp:

Đáng lẽ bạn phải hỏi: đóng xong thì được cái gì?

Điển hình: Dòng "5 Nho" xuất hiện chỉ 1 lần, nhưng trông kết quả thì có khác gì đóng khung đâu?
Quả là đầu óc Ê-Ai nó cao hơn Ê-Kia, Ê-Nọ mấy bậc.
dòng Nho xanh đó mình bôi đen đóng khung nhầm
Bài đã được tự động gộp:

Đáng lẽ bạn phải hỏi: đóng xong thì được cái gì?

Điển hình: Dòng "5 Nho" xuất hiện chỉ 1 lần, nhưng trông kết quả thì có khác gì đóng khung đâu?
Quả là đầu óc Ê-Ai nó cao hơn Ê-Kia, Ê-Nọ mấy bậc.
Cháu đang tính nói. có vẻ data và kết quả tào lao thì phải. Có kết quả mẫu để người đọc hiểu được mà có vẻ không được làm tử tế lắm
Dưới mã số 11, dòng 19, có cần gạch đóng khung không?

Có thể dùng định dạng có điều kiện.
Mình nhầm 1 tí xíu . tức là nếu mã hàng xuất hiện 2 lần trở lên mới gạch đóng khung
1693754347761.png
Bài đã được tự động gộp:

Data lẫn kết quả ví dụ đều không tào lao. Data được sắp xếp theo mã hàng, điều này đúng. Kết quả ví dụ cũng đúng như yêu cầu.

Chỉ có chính yêu cầu tào lao. Như tôi nêu ra ở bài #3, dùng cách kẻ khung chả phân biệt được cái gì cả.
Bài ví dụ mã hàng là 1, 2, 3,... cho nên dễ nhận. Nếu mã hàng là một sọc dài thì mấy cái "khung" ấy cho thấy cái gì?

View attachment 294474

Đáng ra tô màu dễ nhìn hơn. Nhưng có lẽ trí tuệ Ê-Ai nó tính ra vậy.
do Phần này là Output( kết quả để mắt người dùng nhìn thấy ) mình đã tô màu nền của ô rồi, nên không muốn tô màu thêm 1 lần nữa, Vì thế nên mới gạch khung dưới. còn Ví dụ của mình thì là minh họa, công đoạn này chỉ 1 % đế mình lắp ghép vào 1 Moudle khác nữa. Vui lòng bạn giúp đỡ như hình Mô tả của bạn là đúng ý mình, Tại vì mã hàng mình phân biệt là số ( Mã hàng bắt đầu là 1 và sau đó Max(Mã hàng) + 1 )
Mình cần định dạng giống như hình này
1693755086964.png
 
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Không nhầm, bởi lúc đó (chừ thấy ý khác rồi) bạn muốn kẻ cả viền trên lẫn dưới cho các khối. Do đó dòng Nho dính viền dưới của khối bên trên và viền trên của khối dưới.
Lúc đó mình nhầm và mình sửa lại bài 1 rồi. Mình cũng ghi rõ là Mã hàng chỉ xuất hiện >=2 trở lên rồi mà. Sao bạn cứ cố chấp thay đổi câu hỏi của người khác vậy bạn
 
Upvote 0
Lúc đó mình nhầm và mình sửa lại bài 1 rồi. Mình cũng ghi rõ là Mã hàng chỉ xuất hiện >=2 trở lên rồi mà. Sao bạn cứ cố chấp thay đổi câu hỏi của người khác vậy bạn
Lúc ấy bạn đâu có nhầm, chỉ là ê ai nhầm thôi.

Tôi thay đổi câu hỏi của bạn lúc nào, ở đâu, chỉ ngay ra đi?
 
Upvote 0
Lúc ấy bạn đâu có nhầm, chỉ là ê ai nhầm thôi.

Tôi thay đổi câu hỏi của bạn lúc nào, ở đâu, chỉ ngay ra đi?
người thông minh nói 1 lần thì tự hiểu. Mình tham gia diển đàn là để học hỏi kiến thức chứ không phải lên đây kiếm chuyện. Từ nay về sau nhưng câu hỏi của mình thì bạn làm ơn không cần trả lời nhé. Thân chào
 
Upvote 0
Lúc ấy bạn đâu có nhầm, chỉ là ê ai nhầm thôi.

Tôi thay đổi câu hỏi của bạn lúc nào, ở đâu, chỉ ngay ra đi?
Bác buồn cười ghê.
Thớt trước em đã nhắc nhở là ai có nhã ý giúp thớt thì phải tét kỹ trong phòng thí nghiệm ít nhất 03 tháng mà đáp án đúng mới gửi lên mà.
Sau loạt bài hỏi thớt sắp xong dự án và chuẩn bị lượm lúa rồi cỡi mát đa đi vi vu rồi, mà bác vẫn ở đó bị mắng chưa hiểu đề bài . :p
 
Upvote 0
Bác buồn cười ghê.
Thớt trước em đã nhắc nhở là ai có nhã ý giúp thớt thì phải tét kỹ trong phòng thí nghiệm ít nhất 03 tháng mà đáp án đúng mới gửi lên mà.
Sau loạt bài hỏi thớt sắp xong dự án và chuẩn bị lượm lúa rồi cỡi mát đa đi vi vu rồi, mà bác vẫn ở đó bị mắng chưa hiểu đề bài . :p
Haha. Thôi, tôi đưa vào list rồi, cho nhẹ đầu.
 
Upvote 0
Lúc đó mình nhầm và mình sửa lại bài 1 rồi. Mình cũng ghi rõ là Mã hàng chỉ xuất hiện >=2 trở lên rồi mà. Sao bạn cứ cố chấp thay đổi câu hỏi của người khác vậy bạn
người thông minh nói 1 lần thì tự hiểu. Mình tham gia diển đàn là để học hỏi kiến thức chứ không phải lên đây kiếm chuyện. Từ nay về sau nhưng câu hỏi của mình thì bạn làm ơn không cần trả lời nhé. Thân chào
Cho tôi tham gia chút cho vui nhé.
Tham gia của tôi là bói 1 quẻ.
Với Trí tuệ và cách hành xử của thớt, có lẽ các bài của Thớt đưa lên để thớt học hỏi kể cả bài này và các bài sau này trong tương lai sẽ nhận được rất nhiều bài trả lời.
hãy chờ tương lai kiểm chứng.
 
Upvote 0
Câu hỏi này ở một tầm rất cao, tôi đang quản lý 30 nhãn hàng tương ứng với 200 mã hàng, được bán cho hơn 100 ngàn khách hàng mà tôi vẫn không hiểu hết được sâu xa của câu hỏi này.o_Oo_Oo_O
 
Upvote 0
Câu hỏi này ở một tầm rất cao, tôi đang quản lý 30 nhãn hàng tương ứng với 200 mã hàng, được bán cho hơn 100 ngàn khách hàng mà tôi vẫn không hiểu hết được sâu xa của câu hỏi này.o_Oo_Oo_O
vậy thì do bạn chậm tiêu. Hình ảnh mình họa có sẳng nhìn không hiểu thì làm được gì
 
Upvote 0
Đang tháng Bảy mà...
Thử code này nhé . . .
Theo tôi thì dạng câu hỏi này cũng thường gặp, hiểu nôm na là " nhóm các mã hàng có phát sinh" (từ 2 trở lên) cho dễ nhìn
PHP:
Option Explicit
Sub gachchan()
Dim lr&, ce As Range
lr = Cells(Rows.Count, "C").End(xlUp).Row
Range("C3:D" & lr).Borders.LineStyle = xlNone
For Each ce In Range("C3:C" & lr)
    If ce <> ce.Offset(-1, 0) And ce = ce.Offset(1, 0) Then
        ce.Resize(1, 2).Borders(xlEdgeTop).LineStyle = xlContinuous
    ElseIf ce = ce.Offset(-1, 0) And ce <> ce.Offset(1, 0) Then
        ce.Resize(1, 2).Borders(xlEdgeBottom).LineStyle = xlContinuous
    End If
Next
End Sub
 
Upvote 0
Giải pháp
...
Với Trí tuệ và cách hành xử của thớt, có lẽ các bài của Thớt đưa lên để thớt học hỏi kể cả bài này và các bài sau này trong tương lai sẽ nhận được rất nhiều bài trả lời.
hãy chờ tương lai kiểm chứng.
Đây là một người quen cũ. Hồi nào giờ cách hành sử như vậy đó.
Đặc biệt là người này có một cái danh sách "bè lũ 4 tên" trong đó có tên tôi, tác giả bài #12, và tác giả bài #5 (có lẽ bạn này quên rồi).

Câu hỏi này ở một tầm rất cao, tôi đang quản lý 30 nhãn hàng tương ứng với 200 mã hàng, được bán cho hơn 100 ngàn khách hàng mà tôi vẫn không hiểu hết được sâu xa của câu hỏi này.o_Oo_Oo_O
Có lẽ bạn ít dạo phố "Lập Trình" cho nên không biết người này. Y từng xưng là trí tuệ đi tước chúng ta 100 năm.

Tổng kết:
Người này không phải là không biết viết code. Thực sự thù trình độ code và công thức của y cũng khá cao.
Chỉ là y có tính ỷ lại cho nên trình độ giải thuật là một con số không tổ bố. Nói cách khác, y có thể nghĩ ra một đống vấn đề mà hoàn toàn khong biết cách nào để bắt đầu vào giải. Vò vây, y phải đưa nó lên đây cho người ta giải hộ.
Sau khi có lời giải thì y sẽ lấy code hay công thức ấy đem cải tiến lại và đưa lên, và tự vỗ tay, coi như mình giỏi hơn thiên hạ.
 
Upvote 0
Upvote 0
Đang tháng Bảy mà...
Thử code này nhé . . .
Theo tôi thì dạng câu hỏi này cũng thường gặp, hiểu nôm na là " nhóm các mã hàng có phát sinh" (từ 2 trở lên) cho dễ nhìn
...
Dễ nhìn? Hơi chủ quan.
Người đọc bảng phải hiểu rằng:
- Sau lằn gạch đầu tiên là một "nhóm". Nhóm chạy dài đến lằn gạch thứ hai.
- Sau lằn gạch thứ hai là lộn xộn, không nhóm. Lộn xộn cho đến lằn gạch thứ 3.
Nói cách khác, giữa lằn gạch lẻ và chẵn là "nhóm", giữa lằn gạch chẵn và lẻ là không nhóm.
Gặp cái bảng dài một chút thì nhìn vào trong để nhận định một nhóm, và cứ xen kẽ nhóm/không nhóm.
 
Upvote 0
Web KT

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

Back
Top Bottom