Sub LocTuNhomCo3SoVaSapXep()
Dim Rng As Range, sRng As Range: Dim Trm As Integer, Ch As Integer, DVi As Integer
Dim J As Long, W As Integer, Rws As Long, Col As Integer, MyColor As Integer
Const FC As String = ",": Dim StrC As String
Rws = [B2].CurrentRegion.Rows.Count: W = 1
Col = [B2].CurrentRegion.Columns.Count - 1
Set Rng = [A1].Resize(Rws, Col): MyColor = 34
ReDim Arr(1 To Rng.Cells.Count + 1, 1 To 1) As String
Arr(W, 1) = "Kêt Qua:"
For J = 10 To 999
Trm = J \ 100: Ch = (J \ 10) Mod 10
DVi = J Mod 10
StrC = CStr(Trm) & FC & CStr(Ch) & FC & CStr(DVi)
If Len(StrC) = 5 Then
Set sRng = Rng.Find(StrC, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
MyColor = MyColor + 1: W = W + 1:
Arr(W, 1) = StrC: If MyColor = 43 Then MyColor = 34
sRng.Interior.ColorIndex = MyColor
End If
End If
Next J
[H1].Resize(W).Value = Arr()
End Sub
a ơi làm sao để cho nó hiện ra ô kết quả được ạ . e chạy macro nó chỉ đánh dấu màu thôi . agiups e với ạMình chỉ có thể giải quyết cho bạn bằng VBA thôi:
Mã:Sub LocTuNhomCo3SoVaSapXep() Dim Rng As Range, sRng As Range: Dim Trm As Integer, Ch As Integer, DVi As Integer Dim J As Long, W As Integer, Rws As Long, Col As Integer, MyColor As Integer Const FC As String = ",": Dim StrC As String Rws = [B2].CurrentRegion.Rows.Count: W = 1 Col = [B2].CurrentRegion.Columns.Count - 1 Set Rng = [A1].Resize(Rws, Col): MyColor = 34 ReDim Arr(1 To Rng.Cells.Count + 1, 1 To 1) As String Arr(W, 1) = "Kêt Qua:" For J = 10 To 999 Trm = J \ 100: Ch = (J \ 10) Mod 10 DVi = J Mod 10 StrC = CStr(Trm) & FC & CStr(Ch) & FC & CStr(DVi) If Len(StrC) = 5 Then Set sRng = Rng.Find(StrC, , xlFormulas, xlWhole) If Not sRng Is Nothing Then MyColor = MyColor + 1: W = W + 1: Arr(W, 1) = StrC: If MyColor = 43 Then MyColor = 34 sRng.Interior.ColorIndex = MyColor End If End If Next J [H1].Resize(W).Value = Arr() End Sub
Câu lệnh (gần) cuối chương trình là để hiễn thị kết quả (ở cột [H:H])a ơi làm sao để cho nó hiện ra ô kết quả được ạ . e chạy macro nó chỉ đánh dấu màu thôi . agiups e với ạ
"[H1].Resize(W).Value = Arr()" đoạn này phải không ạ. Chắc do bảng của e đến tận cột AA.Câu lệnh (gần) cuối chương trình là để hiễn thị kết quả (ở cột [H:H])
(1) Có thể bạn đã bỏ câu lệnh này sao?
(2) Cột [H:H] có bị bạn khóa chăng?
(3) . . . . . .
(1) "[H1].Resize(W).Value = Arr()" đoạn này phải không ạ. Chắc do bảng của e đến tận cột AA.
(2) A ơi đoạn code trên chỉ tính toán từ cột AF thôi phải ko a?
(3) E muốn tính nhiều dữ liệu hơn thì phải làm tn ạ?
(4) ***. E muốn tính tỷ lệ xuất hiện của từng ô trong ô kết quả vd: 0,1,2 - %? Sau đó tự xắp xếp ô nào cho % cao nhất ở trên
E không biết VBA nhưng mà dùng hàm nó đơ máy lắm. A giúp e vs nhé
e cảm ơn ạ(1.1) Đúng;
(1.2) Thì đổi câu lệnh đó lại là [AH1].Resize(W).Value = Arr()
(2) Đúng
(3) (Chưa hiểu ý này lắm!)
(4.1) Có thể làm được, . . . .
(4.2) Cũng được, nhưng bạn tự làm lấy!
Chúc các bạn tuần làm việc vui vẻ & thành công!