Hàm in nghiêng chữ trong excel (5 người xem)

Liên hệ QC

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

huynhthinh1

Thành viên mới
Tham gia
4/12/13
Bài viết
10
Được thích
0
Các bác nào biết hàm nào trong excel thay đổi font chữ thành in nghiêng sau 1 ký tự nào đó không.
Ví dụ : mình có chuỗi "Hàm in nghiêng, trong excel". sau dấu "," thì toàn bộ sẽ được in nghiêng. Bác nào biết thì chỉ giáo em với, cám ơn rất nhiều!
 
Các bác nào biết hàm nào trong excel thay đổi font chữ thành in nghiêng sau 1 ký tự nào đó không.
Ví dụ : mình có chuỗi "Hàm in nghiêng, trong excel". sau dấu "," thì toàn bộ sẽ được in nghiêng. Bác nào biết thì chỉ giáo em với, cám ơn rất nhiều!
Theo tôi biết thì hàm chỉ trả về kết quả, không trả về định dạng. Yêu cầu của bạn có thể thực hiện bằng một thủ tục thôi.
 
Các bác nào biết hàm nào trong excel thay đổi font chữ thành in nghiêng sau 1 ký tự nào đó không.
Ví dụ : mình có chuỗi "Hàm in nghiêng, trong excel". sau dấu "," thì toàn bộ sẽ được in nghiêng. Bác nào biết thì chỉ giáo em với, cám ơn rất nhiều!
Chắc dùng cách lập trình thì được. Sau mỗi nhập dữ liệu rồi nhấn Enter thì sẽ đổi chữ sau dấu , thành chữ in nghiêng.
Chứ hàm có sẵn trong excel thì theo mình là KHÔNG có.
 
Ai biết viết code cũng được, không nhất thiết là phải hàm có sẵn
 
Xin góp một cách, đang học VBA nên có thể chưa hay, mong mọi người góp ý thêm:
Bạn Copy đoạn code sau vào một Module. Sau đó chọn các ô muốn chuyển các ký tự sau dấu "," thành in nghiêng và chạy Macro.
______________________________________
Option Explicit
Public Sub innghieng()
Dim rng As Range
Dim cell As Range
Dim i As Integer
Set rng = ActiveWindow.RangeSelection
For Each cell In rng
For i = WorksheetFunction.Find(",", cell, 1) + 1 To Len(cell)
cell.Characters(i, 1).Font.Italic = True
Next i
Next cell
End Sub
__________________________________________________
Bạn thử nhé.
 
Xin góp một cách, đang học VBA nên có thể chưa hay, mong mọi người góp ý thêm:
Bạn Copy đoạn code sau vào một Module. Sau đó chọn các ô muốn chuyển các ký tự sau dấu "," thành in nghiêng và chạy Macro.
______________________________________
Option Explicit
Public Sub innghieng()
Dim rng As Range
Dim cell As Range
Dim i As Integer
Set rng = ActiveWindow.RangeSelection
For Each cell In rng
For i = WorksheetFunction.Find(",", cell, 1) + 1 To Len(cell)
cell.Characters(i, 1).Font.Italic = True
Next i
Next cell
End Sub
__________________________________________________
Bạn thử nhé.

Cám ơn bạn, mình đã thử và thành công, For i = WorksheetFunction.Find(",", cell, 1) + 1 To Len(cell), mình thay dấu "," bằng char(10), là ký tự xuống hàng thì nó không hiểu. Bạn giúp mình nha, tks bạn
 
Cám ơn bạn, mình đã thử và thành công, For i = WorksheetFunction.Find(",", cell, 1) + 1 To Len(cell), mình thay dấu "," bằng char(10), là ký tự xuống hàng thì nó không hiểu. Bạn giúp mình nha, tks bạn
Char() là hàm trong excel, hàm trong VBA là chr() bạn nhé!!!
 
chào các bạn,

Mình chỉ muốn in nghiêng hai ký tự đầu của một chuỗi, có dấu cách thì làm thế nào ạ?

Mình có làm như sau mà không được,

Option Explicit
Public Sub innghieng()
Dim rng As Range
Dim cell As Range
Dim i As Integer
Set rng = ActiveWindow.RangeSelection
For Each cell In rng
For i = WorksheetFunction.Find("", cell, 1) + 1 To Len(Left(cell, Find(" ", cell, 1) - 1) & " " & Left(Right(cell, Len(cell) - Find(" ", cell, 1) - 1), Find(" ", Right(cell, Len(cell) - Find(" ", cell, 1) - 1), 1) - 1))
cell.Characters(i, 1).Font.Italic = True
Next i
Next cell
End Sub

Có bạn nào rành xin chỉ giúp với ạ.

Trân trọng cám ơn
 
chào các bạn,

Mình chỉ muốn in nghiêng hai ký tự đầu của một chuỗi, có dấu cách thì làm thế nào ạ?

Mình có làm như sau mà không được,

Option Explicit
Public Sub innghieng()
Dim rng As Range
Dim cell As Range
Dim i As Integer
Set rng = ActiveWindow.RangeSelection
For Each cell In rng
For i = WorksheetFunction.Find("", cell, 1) + 1 To Len(Left(cell, Find(" ", cell, 1) - 1) & " " & Left(Right(cell, Len(cell) - Find(" ", cell, 1) - 1), Find(" ", Right(cell, Len(cell) - Find(" ", cell, 1) - 1), 1) - 1))
cell.Characters(i, 1).Font.Italic = True
Next i
Next cell
End Sub

Có bạn nào rành xin chỉ giúp với ạ.

Trân trọng cám ơn
Cái đoạn For...to của bạn lằng nhằng quá!!
PHP:
Public Sub innghieng()
Dim cell As Range
Dim i As Integer
For Each cell In ActiveWindow.Selection
    With ActiveCell.Characters(Start:=1, Length:=2).Font
        .FontStyle = "Italic"
    End With
    For i = 1 To Len(cell.Value)
        If Mid(cell.Value, i, 1) = Chr(32) Then
            With ActiveCell.Characters(Start:=i + 1, Length:=2).Font
                .FontStyle = "Italic"
            End With
        End If
    Next
Next
 
Lần chỉnh sửa cuối:
Cám ơn bạn Vũ Tuấn Mạnh Linh nhiều nhé. Nhưng có vẻ như vẫn chưa chuẩn.

Mình có list cần xử lý như dưới đây
[TABLE="width: 240"]
[TR]
[TD]Selaginella delicatula Alston
[/TD]
[/TR]
[TR]
[TD]Selaginella dolichoclada Baker
[/TD]
[/TR]
[TR]
[TD]Selaginella intermedia Spring[/TD]
[/TR]
[TR]
[TD]Selaginella moellendorfii Hieron.[/TD]
[/TR]
[/TABLE]


Và mong muốn kết quả sẽ thế này:
[TABLE="width: 240"]
[TR]
[TD]Selaginella delicatula Alston
[/TD]
[/TR]
[TR]
[TD]Selaginella dolichoclada Baker
[/TD]
[/TR]
[TR]
[TD]Selaginella intermedia Spring
[/TD]
[/TR]
[TR]
[TD]Selaginella moellendorfii Hieron.
[/TD]
[/TR]
[/TABLE]


Kính mong các bạn chỉ giáo, giúp đỡ.

Chân thành cám ơn ạ.
 
Cám ơn bạn Vũ Tuấn Mạnh Linh nhiều nhé. Nhưng có vẻ như vẫn chưa chuẩn
Muốn hỏi gì thì tốt nhất là dùng 1 file demo ít dữ liệu vào đấy thì người giúp đỡ phải đoán.
PHP:
Sub innghieng()
Dim Cll As Range
Dim i As Integer
For Each Cll In Selection
    Cll.Select
    For i = Len(Cll.Value) To 1 Step -1
        If Mid(Cll.Value, i, 1) = Chr(32) Then
            With ActiveCell.Characters(Start:=1, Length:=i - 1).Font
                .FontStyle = "Italic"
            End With
        End If
    Next
Next
End Sub
 
Xin góp một cách, đang học VBA nên có thể chưa hay, mong mọi người góp ý thêm:
Bạn Copy đoạn code sau vào một Module. Sau đó chọn các ô muốn chuyển các ký tự sau dấu "," thành in nghiêng và chạy Macro.
______________________________________
Option Explicit
Public Sub innghieng()
Dim rng As Range
Dim cell As Range
Dim i As Integer
Set rng = ActiveWindow.RangeSelection
For Each cell In rng
For i = WorksheetFunction.Find(",", cell, 1) + 1 To Len(cell)
cell.Characters(i, 1).Font.Italic = True
Next i
Next cell
End Sub
__________________________________________________
Bạn thử nhé.
Mình tùy biến lại một xíu để xử lý nhanh hơn và tránh gặp lỗi khi chọn vùng có merge ô (ở đây mình dùng ký tự "/" để nhận biết):
Option Explicit
Public Sub In_nghieng()
'
' In_nghieng Macro
' In nghieng chuoi van ban sau dau /
'
' Keyboard Shortcut: Ctrl+Shift+I
'
Dim rng As Range
Dim cell As Range
Dim i As Integer
Set rng = ActiveWindow.RangeSelection
On Error Resume Next
For Each cell In rng
For i = WorksheetFunction.Find("/", cell, 1) + 1 To Len(cell)
cell.Characters(i, Len(cell) + 1 - i).Font.Italic = True
Exit For
Next i
Next cell
End Sub
 

File đính kèm

Web KT

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

Back
Top Bottom