Dạ em có sử dụng đoạn code :Xem file.
Sub Dao_chu()
Dim k As Long, text As String, s As String
If TypeName(Selection) = "Range" Then
If Selection.Parent.Name = "Danh muc NT CVXD" And Selection.Count = 1 And Selection.Column = 5 Then
text = Application.Trim(Selection.Value)
k = InStr(1, text, " ")
s = LCase(Left(text, k - 1))
k = InStr(k + 1, text, " ")
s = Application.Proper(Mid(text, Len(s) + 2, k - Len(s) - 2)) & " " & s
Mid(text, 1, Len(s)) = s
Selection.Offset(1).EntireRow.Insert
With Selection.Offset(1)
.Font.Color = RGB(100, 0, 255)
.Value = text
End With
End If
End If
End Sub
Cám ơn thầy, em đã sửa lại. lần sau em rút kinh nghiệm.@ Bài #3:
View attachment 209428
-----------------
Đã góp ý vụ đăng cái hướng dẫn viết phần công thức/ code mà mãi không được.
Thấy người ta để cái hướng dẫn to dùng ở trên đầu chuyên mục, đầu chủ đề như này. Bài nào vi phạm là tự động vô thùng rác luôn và ngay.
View attachment 209429
Thì bạn dùng Conditional Formating đấy thôi, sao giờ lại kêu. Mầu xanh có ở những dòng mà tương ứng D = ""Em xin được hỏi các thầy, các anh chị, em có 1 filde dạng add-in
Em không thể thay đổi được màu chữ trong nội dung ô đó (vùng khoanh đỏ)
Nhờ các anh chị giúp em ạ!
View attachment 209408
Bạn chọn E17:E22 -> phải chuột -> Format cell -> thẻ Font. Bạn thiết lập mầu phông chữ là tím mà còn kêu? Hoặc trước đó đã chạy code nên các dòng đó được code thiết lập phông chữ tím. Sau đó xóa nộidung bằng tay, nhưng thiết lập mầu phông chữ lại không chuyển về mặc định bằng tay nên cứ viết gì vào thì lại có mầu tím.Dạ em có sử dụng đoạn code :
Sau khi chạy đoạn code nêu trên, thì xuất hiện nội dung ô E15 (code có tác dụng copy nội dung ô số E14 xuống ô số E15 và đổi 02 từ "Phá dỡ" thành "Dỡ phá", và màu chữ trong ô E15 là màu xanh pha tím)Mã:Sub Dao_chu() Dim k As Long, text As String, s As String If TypeName(Selection) = "Range" Then If Selection.Parent.Name = "Danh muc NT CVXD" And Selection.Count = 1 And Selection.Column = 5 Then text = Application.Trim(Selection.Value) k = InStr(1, text, " ") s = LCase(Left(text, k - 1)) k = InStr(k + 1, text, " ") s = Application.Proper(Mid(text, Len(s) + 2, k - Len(s) - 2)) & " " & s Mid(text, 1, Len(s)) = s Selection.Offset(1).EntireRow.Insert With Selection.Offset(1) .Font.Color = RGB(100, 0, 255) .Value = text End With End If End If End Sub
Tiếp tục điền dữ liệu bằng tay vào những dòng khác (từ ô E16 trở đi )thì chữ ở những dòng này không phải là màu mặc định là màu đen mà thành màu như màu ở ô E15, em muốn dòng E16 trở đi khi điền nội dung chữ sẽ có màu mặc định là màu đen chứ không phải như màu ở ô E15 khi chạy code trên .
Anh/ chị giúp em ạ!
Em cám ơn.
View attachment 209425
Dạ em cảm ơn thầy, em đã sửa lại được rồi.Bạn chọn E17:E22 -> phải chuột -> Format cell -> thẻ Font. Bạn thiết lập mầu phông chữ là tím mà còn kêu? Hoặc trước đó đã chạy code nên các dòng đó được code thiết lập phông chữ tím. Sau đó xóa nộidung bằng tay, nhưng thiết lập mầu phông chữ lại không chuyển về mặc định bằng tay nên cứ viết gì vào thì lại có mầu tím.
Thầy ơi, cho em hỏi chút xíu, em đã bỏ "Conditional Formating" đi, nhờ thầy giúp em chỉnh code mà thầy đã viết giúp để khi chạy code, thì dòng chữ màu tím (dang ở dạng chữ đứng) trở thành "Italic" (thuộc tính chữ nghiêng) và cho em hỏi thêm nếu muốn thay đổi màu của chữ thì phải chỉnh sửa phần nào trong code ạ?Dạ em cảm ơn thầy, em đã sửa lại được rồi.
Thầy ơi, cũng cùng chủ đề sửa màu chữ và để có dạng chữ nghiêng"Italic"Bạn chọn E17:E22 -> phải chuột -> Format cell -> thẻ Font. Bạn thiết lập mầu phông chữ là tím mà còn kêu? Hoặc trước đó đã chạy code nên các dòng đó được code thiết lập phông chữ tím. Sau đó xóa nộidung bằng tay, nhưng thiết lập mầu phông chữ lại không chuyển về mặc định bằng tay nên cứ viết gì vào thì lại có mầu tím.
Sub MauTN()
Dim shdata As Worksheet
Dim shInfor As Worksheet
Set shInfor = Sheets("TU KHOA LAY MTN")
Set shdata = Sheets("Danh muc NT CVXD")
Dim i As Long
With shdata
For i = .Range("E" & .Rows.Count).End(xlUp).Row To 1 Step -1
If .Range("E" & i) <> "" And .Range("C" & i + 1) = "" Then
Dim j As Long
For j = 2 To shInfor.Range("A600").End(xlUp).Row
If VBA.Left(.Range("E" & i).Value, Len(shInfor.Range("A" & j).Value)) = shInfor.Range("A" & j).Value Then
shdata.Range("A" & i + 1 & ":A" & i + shInfor.Range("B" & j).Value).EntireRow.Insert
shdata.Range("C" & i + 1).Value = shInfor.Range("C" & j).Value
Exit For
End If
Next
End If
Next
End With
End Sub
Tập viết thì mới biết được chứ. Cái gì cũng đi nhờ thế này mai nó lỗi 1 tẹo lại đi nhờ tiếp mỏi lắm. Nhất là Bạn đang làm file HS QLCLThầy ơi, cũng cùng chủ đề sửa màu chữ và để có dạng chữ nghiêng"Italic"
Đoạn code dưới đây, sau khi em chạy sẽ tự động chèn 1 dòng trống dưới và điền mã "LMBT"; LMV"......vào ô C ngay dưới dòng đó sau khi lấy dữ liệu ở Sheet "TU KHOA LAY MTN" để đối chiếu (sau khi chạy code xuất hiện dòng 52 )
Nhờ thầy giúp em chỉnh sửa code để dòng trước các từ khóa "LMBT"; "LMV"....và dòng chứa từ khóa đó có chữ là dạng chữ nghiêng, và có màu cùng màu với màu ở bài #9 (sau khi chạy code nội dung dòng thứ 51 và dòng thứ 52 mới được chèn có thuộc tính chữ nghiêng và có màu xanh)Mã:Sub MauTN() Dim shdata As Worksheet Dim shInfor As Worksheet Set shInfor = Sheets("TU KHOA LAY MTN") Set shdata = Sheets("Danh muc NT CVXD") Dim i As Long With shdata For i = .Range("E" & .Rows.Count).End(xlUp).Row To 1 Step -1 If .Range("E" & i) <> "" And .Range("C" & i + 1) = "" Then Dim j As Long For j = 2 To shInfor.Range("A600").End(xlUp).Row If VBA.Left(.Range("E" & i).Value, Len(shInfor.Range("A" & j).Value)) = shInfor.Range("A" & j).Value Then shdata.Range("A" & i + 1 & ":A" & i + shInfor.Range("B" & j).Value).EntireRow.Insert shdata.Range("C" & i + 1).Value = shInfor.Range("C" & j).Value Exit For End If Next End If Next End With End Sub
Các dòng khác cũng tương tự.
View attachment 209471
Trong đoạnThầy ơi, cho em hỏi chút xíu, em đã bỏ "Conditional Formating" đi, nhờ thầy giúp em chỉnh code mà thầy đã viết giúp để khi chạy code, thì dòng chữ màu tím (dang ở dạng chữ đứng) trở thành "Italic" (thuộc tính chữ nghiêng) và cho em hỏi thêm nếu muốn thay đổi màu của chữ thì phải chỉnh sửa phần nào trong code ạ?
With Selection.Offset(1)
.Font.Color = RGB(100, 0, 255)
.Value = text
End With
.Font.Italic = True
.Font.Color = RGB(100, 0, 255)
Vâng em cám ơn thầy!Trong đoạn
Muốn thêm gì thì thêm. Vd. Italic thì thêmMã:With Selection.Offset(1) .Font.Color = RGB(100, 0, 255) .Value = text End With
Muốn Bold thì cũng tương tự.Mã:.Font.Italic = True
Trong VBE hãy nhập từ Font vào trường ở bên trái phía trên rồi nhấn Enter, rồi đọc. Vd. đọc mục
"Font Object, Bold, Italic, Size, StrikeThrough, Underline, Weight Properties Example" và các mục khác. Có những ví dụ thì tự test để hiểu. Học là đọc tài liệu và thử nghiệm để hiểu lý thuyết.
Dòng thay mầu chữ là
Người ta đã đặt những tên mà chỉ cần đọc có suy nghĩ là có thể đoán nó là gì. Font là phông chữ, Color là mầu. Ở đây là mầu của phông chữ (Color là thuộc tính của đối tượng phông chữ). Vậy muốn mầu khác thì tự thay đổi 3 giá trị trong hàm RGB. 3 giá trị BAI đều >= 0 và <= 255. Thay vì 100, 0, 255 thì nhập 3 giá trị khác bất kỳ trong khoảng [0;255] rồi mục sở thị mầu đã thay đổi thế nào.Mã:.Font.Color = RGB(100, 0, 255)
Có nghĩa là thế nào? Toàn bộ dòng từ cột A tới cột XFD đều Italic và mầu? Hay chỉ có cột E? Hãy tập nói rõ và chính xác.Nhờ thầy giúp em chỉnh sửa code để dòng trước các từ khóa "LMBT"; "LMV"....và dòng chứa từ khóa đó có chữ là dạng chữ nghiêng, và có màu cùng màu với màu ở bài #9
With shdata.Range("E" & i).Resize(2).Font
.Italic = True
.Color = RGB(0, 255, 0)
End With
Dạ em cám ơn thầy nhiều, lần sau em sẽ diễn đạt rõ và chính xác ạ!Có nghĩa là thế nào? Toàn bộ dòng từ cột A tới cột XFD đều Italic và mầu? Hay chỉ có cột E? Hãy tập nói rõ và chính xác.
Tôi chỉ thiết lập cho cột E. Nếu muốn mầu khác thì tự sửa.
Trước dòng Exit For thì thêm cụm
Mã:With shdata.Range("E" & i).Resize(2).Font .Italic = True .Color = RGB(0, 255, 0) End With
Mọi vấn đề mới hãy hỏi trong chủ đề mới.