Giúp tạo Msgbox hiển thị ô đầu tiên và ô cuối cùng của nhóm ô có hình dạng ngẫu nhiên để chạy Conditional Formatting

Liên hệ QC

hktanh

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
22/8/19
Bài viết
112
Được thích
8
Giới tính
Nam
Chào các bạn. Mình đang có một vấn đề về việc tô màu ô theo điều kiện Condition Formatting, đó là vùng mà mình muốn áp dụng Conditional Formatting là một vùng ghép của nhiều mảng rời rạc, chẳng hạn như trong file thì mình chọn vùng áp dụng condition là B3 , E1:J11 với điều kiện là ô nào khác rỗng sẽ được tô màu, thì khi đó hàm điều kiện của mình phải mà =B1<>"" trong đó B là cột ngoài cùng của vùng chọn và 1 là dòng trên cùng của vùng chọn. Tuy nhiên đối với những vùng phức tạp hơn hoặc thậm chí có ô bị ẩn, hoặc ghép của nhiều vùng lớn nhỏ với nhau thì mình rất khó xác định được ô đầu tiên trong điều kiện conditional formatting là gì. Tương tự với ô cuối cùng của nhóm. Vậy mình muốn nhờ các bạn tạo giúp macro Msgbox hiển thị ô đầu tiên và ô cuối cùng của nhóm Conditional Formatting sao cho nó có thể được tích hợp vào cái nút trên thanh Ribbon mà mình đã để ở trong file để dùng cho tiện đối với tất cả các sheet, tức là macro này dùng chung được cho tất cả các sheet. Mình cảm ơn
Cấu trúc của Msgbox mình mong muốn: Ví dụ vùng chọn của mình là B3 , E1:J11 , L6 thì kết quả hiển thị của Msgbox sẽ là
Ô đầu tiên: B1
Ô cuối cùng: L11
 

File đính kèm

  • Cần tạo msgbox cho ô đầu tiên và ô cuối cùng của nhóm Conditional Formatting.xlsm
    11.2 KB · Đọc: 7
Chào các bạn. Mình đang có một vấn đề về việc tô màu ô theo điều kiện Condition Formatting, đó là vùng mà mình muốn áp dụng Conditional Formatting là một vùng ghép của nhiều mảng rời rạc, chẳng hạn như trong file thì mình chọn vùng áp dụng condition là B3 , E1:J11 với điều kiện là ô nào khác rỗng sẽ được tô màu, thì khi đó hàm điều kiện của mình phải mà =B1<>"" trong đó B là cột ngoài cùng của vùng chọn và 1 là dòng trên cùng của vùng chọn. Tuy nhiên đối với những vùng phức tạp hơn hoặc thậm chí có ô bị ẩn, hoặc ghép của nhiều vùng lớn nhỏ với nhau thì mình rất khó xác định được ô đầu tiên trong điều kiện conditional formatting là gì. Tương tự với ô cuối cùng của nhóm. Vậy mình muốn nhờ các bạn tạo giúp macro Msgbox hiển thị ô đầu tiên và ô cuối cùng của nhóm Conditional Formatting sao cho nó có thể được tích hợp vào cái nút trên thanh Ribbon mà mình đã để ở trong file để dùng cho tiện đối với tất cả các sheet, tức là macro này dùng chung được cho tất cả các sheet. Mình cảm ơn
Cấu trúc của Msgbox mình mong muốn: Ví dụ vùng chọn của mình là B3 , E1:J11 , L6 thì kết quả hiển thị của Msgbox sẽ là
Ô đầu tiên: B1
Ô cuối cùng: L11
Ô đầu tiên là ô có
- chỉ số cột column nhỏ nhất (min)
- chỉ số hàng row nhỏ nhất (min)

Ô cuối cùng thì ngược lại, là xong
 
Upvote 0
Thử xem sao nha bạn, sau đó chế tiếp:
PHP:
Sub SelectRanges()
 Dim Rng As Range, Cls As Range
 Dim W As Long
 Dim fAdd As String, lAdd As String
 
 Set Rng = Union([b3], [E1:J11], [L6])
 For Each Cls In Rng
    W = W + 1:                  If W = 1 Then fAdd = Cls.Address
    If W = Rng.Cells.Count Then lAdd = Cls.Address
 Next Cls
 MsgBox lAdd, , fAdd
End Sub
 
Upvote 0
Thử xem sao nha bạn, sau đó chế tiếp:
PHP:
Sub SelectRanges()
Dim Rng As Range, Cls As Range
Dim W As Long
Dim fAdd As String, lAdd As String

Set Rng = Union([b3], [E1:J11], [L6])
For Each Cls In Rng
    W = W + 1:                  If W = 1 Then fAdd = Cls.Address
    If W = Rng.Cells.Count Then lAdd = Cls.Address
Next Cls
MsgBox lAdd, , fAdd
End Sub
à thế là mình phải gõ hẳn vùng đó vào trong vba thì sub mới chạy được à bạn, mình cứ nghĩ là vùng mình chọn là ngẫu nhiên
Bài đã được tự động gộp:

trong file của bạn có code nào đâu mà sửa với viết
Bạn chọn vùng chọn theo cách nào thì viết code vào đi, rồi mới sửa tiếp
Mình chọn ngẫu nhiên các vùng rời rạc bằng phím Ctrl nhé, mình muốn là sau khi ấn cái nút đó thì nó tự động trả về kết quả lại cho mình như kiểu thế này, tại là mình không biết viết code :"))
Ví dụ vùng chọn của mình là B3 , E1:J11 , L6 thì kết quả hiển thị của Msgbox sẽ là
Ô đầu tiên: B1
Ô cuối cùng: L11
 
Upvote 0
Mình chọn ngẫu nhiên các vùng rời rạc bằng phím Ctrl nhé, mình muốn là sau khi ấn cái nút đó thì nó tự động trả về kết quả lại cho mình như kiểu thế này, tại là mình không biết viết code :"))
Ví dụ vùng chọn của mình là B3 , E1:J11 , L6 thì kết quả hiển thị của Msgbox sẽ là
Ô đầu tiên: B1
Ô cuối cùng: L11
Không biết viết code, thì hỏi code làm chi?
 
Upvote 0
Upvote 0
Bạn chủ bài đăng tìm trên diễn đàn cách mà ta có thể dùng chuột chọn các ô trong 1 vùng & đưa vô biến 1 cách lần luợt
 
Upvote 0
ý tôi là không biết code, mà nhờ người khác viết thì sai sao biết, nên tốt nhất học lái xe trước khi ra đường cầm lái
Bạn chủ bài đăng tìm trên diễn đàn cách mà ta có thể dùng chuột chọn các ô trong 1 vùng & đưa vô biến 1 cách lần luợt
Kiểu này là thớt hồi nào giờ có một tên lính chuyên code cho mình. Bây giờ tên lính ấy nghỉ việc (hay bị đuổi) cho nên mới phải lên đây xin code.
 
Upvote 0
Cách này có thể xài được nè:
PHP:
Sub SelectRanges()
 Dim Rng As Range, Cls As Range, Tmp As Range
 Dim W As Long
 Dim fAdd As String, lAdd As String
 
 Set Rng = Selection
 MsgBox Rng.Cells.Count
 For Each Cls In Rng
    W = W + 1:                  If W = 1 Then fAdd = Cls.Address
    If W = Rng.Cells.Count Then lAdd = Cls.Address
 Next Cls
 MsgBox lAdd, , fAdd
End Sub
 
Upvote 0
Cách này có thể xài được nè:
PHP:
Sub SelectRanges()
Dim Rng As Range, Cls As Range, Tmp As Range
Dim W As Long
Dim fAdd As String, lAdd As String

Set Rng = Selection
MsgBox Rng.Cells.Count
For Each Cls In Rng
    W = W + 1:                  If W = 1 Then fAdd = Cls.Address
    If W = Rng.Cells.Count Then lAdd = Cls.Address
Next Cls
MsgBox lAdd, , fAdd
End Sub

Bạn ơi bạn xem kỹ lại giúp mình nhé
*** Mong muốn của mình:
Ví dụ vùng chọn của mình là B3 , E1:J11 , L6 thì kết quả hiển thị của Msgbox sẽ là
Ô đầu tiên: B1 (vì B là cột ngoài cùng của nhóm, 1 là dòng trên cùng của nhóm)
Ô cuối cùng: L11 (vì L là cột cuối cùng của nhóm, 11 là dòng cuối cùng của nhóm)
*** Kết quả code của bạn:
Ô đầu tiên: B3
Ô cuối cùng: L6
Không đúng rồi bạn nhé
 
Upvote 0
Nếu chỉ chọn 2 ô B2 & C1 thì bạn kết luận sao?
 
Upvote 0

File đính kèm

  • B2 và C1 bạn nhé.xlsx
    9.5 KB · Đọc: 5
Upvote 0
Thế thì mình xin đầu hàng rồi, tạm biệt bạn nhé!
 
Upvote 0
(hắc gì mình sống tới khi đó để giúp hay được bạn giúp!
Thôi thì vĩnh biệt tại đây cho nhẹ người!
 
Upvote 0
ý tôi là không biết code, mà nhờ người khác viết thì sai sao biết, nên tốt nhất học lái xe trước khi ra đường cầm lái
Tôi chả bao giờ giấu dốt như cậu cả mà đòi học lái xe, không biết thì hỏi chứ cậu nghĩ vba dễ học lắm hả, nực cười
 
Upvote 0
Web KT
Back
Top Bottom