GPE Phát hành sách: "Lập trình VBA trong Excel cho người mới bắt đầu - 2014" | "VBA trong Excel - Cải thiện và tăng tốc - 2013"
Hiển thị kết quả tìm kiếm từ 1 đến 8 trên tổng số: 8
  1. #1
    Tham gia ngày
    06 2008
    Bài gởi
    16
    Cảm ơn
    2
    Được cảm ơn 2 lần trong 2 bài viết

    Nối text từ các cell có định dạng khác nhau về cùng 1 cell

    Mình có một vấn đề muốn xin được chỉ giáo :
    VD :
    Trong ô A1 gõ "Dân tộc" định dạng font in đậm, in nghiêng hoặc gạch chân ...
    Trong ô A2 gõ "Việt Nam" định dạng font in thường
    Trong ô A3 gõ "=A1&""&A2
    Kết quả trả về "Dân tộc Việt Nam" nhưng lúc này chư "Dân tộc" lại in thường theo định dang của ô A3
    Vì vậy mình muốn hỏi có làm cách nào để chuỗi ký tự trong ô A3 vừa có định dạng font của ô A1 và A2
    Xin chân thành cảm ơn

    Cảm ơn các bạn đã chỉ giáo! bây giờ mình xin được hỏi tiếp rất mong nhận được chỉ giáo sớm:
    Nhập ký tự dạng text vào ô A1, A2, A3, ... (mỗi ô là một kiểu định dạng), tại ô C1 sẽ nối A1, A2, A3, ... thành 1 chuỗi (vẫn giữ nguyên định dạng từ các ô được nối). Yêu cầu khi nhập đến đâu thì hiển thị kết quả ngay đến đó, không dùng nút lệnh.
    Một lần nữa cảm ơn!
    thay đổi nội dung bởi: hpmongmanh, 23-09-10 lúc 04:21 PM

  2. Thành viên sau cảm ơn hpmongmanh về bài viết này:


  3. #2
    Tham gia ngày
    05 2009
    Bài gởi
    1,640
    Cảm ơn
    1,519
    Được cảm ơn 1,752 lần trong 977 bài viết
    Trích Nguyên văn bởi hpmongmanh View Post
    Mình có một vấn đề muốn xin được chỉ giáo :
    VD :
    Trong ô A1 gõ "Dân tộc" định dạng font in đậm và in nghiêng
    Trong ô A2 gõ "Việt Nam" định dạng font in thường
    Trong ô A3 gõ "=A1&""&A2
    Kết quả trả về "Dân tộc Việt Nam" nhưng lúc này chư "Dân tộc" lại in thường theo định dang của ô A3
    Vì vậy mình muốn hỏi có làm cách nào để chuỗi ký tự trong ô A3 vừa có định dạng font của ô A1 và A2
    Xin chân thành cảm ơn
    Bạn dùng tạm củ chuối này vậy:
    Code:
    Sub Noichu()
    Dim i As Long, enR As Long
    Range("C:C").Clear
    enR = Sheet1.Range("A65536").End(xlUp).Row
     For i = 1 To enR
        With Cells(i, 3)
            .FormulaR1C1 = "=RC[-2]&"" ""&RC[-1]"
            .Value = .Value
        End With
        If Cells(i, 1) <> "" Then
          With Cells(i, 3).Characters(Start:=1, Length:=Len(Cells(i, 1))).Font
            .FontStyle = "Bold Italic"
          End With
        Else
        End If
     Next
    End Sub
    Xem thêm file nhé!
    Tập tin đính kèm Tập tin đính kèm
    • Loại tập tin: xls GPE.xls (27.5 KB, 83 lần tải)
    Một ngày không thể không nghĩ, không thể không học!

  4. Có 2 thành viên cảm ơn MinhCong về bài viết này:


  5. #3
    Tham gia ngày
    06 2008
    Bài gởi
    22,992
    Cảm ơn
    13,011
    Được cảm ơn 40,593 lần trong 18,498 bài viết
    Trích Nguyên văn bởi MinhCong View Post
    Bạn dùng tạm củ chuối này vậy:
    Code:
    Sub Noichu()
    Dim i As Long, enR As Long
    Range("C:C").Clear
    enR = Sheet1.Range("A65536").End(xlUp).Row
     For i = 1 To enR
        With Cells(i, 3)
            .FormulaR1C1 = "=RC[-2]&"" ""&RC[-1]"
            .Value = .Value
        End With
        If Cells(i, 1) <> "" Then
          With Cells(i, 3).Characters(Start:=1, Length:=Len(Cells(i, 1))).Font
            .FontStyle = "Bold Italic"
          End With
        Else
        End If
     Next
    End Sub
    Xem thêm file nhé!
    Nếu viết thành code, MinhCong nên làm theo hướng thế này:
    - Nối chuổi thành KQ
    - Xét chuổi KQ, định dạng đoạn đầu giống như chang như cell thứ nhất và đoạn cuối giống y chang cell thứ 2
    Có nghìa là 2 cell nguồn định dạng thế nào thì KQ cũng y thế

  6. Có 2 thành viên cảm ơn ndu96081631 về bài viết này:


  7. #4
    Tham gia ngày
    05 2009
    Bài gởi
    1,640
    Cảm ơn
    1,519
    Được cảm ơn 1,752 lần trong 977 bài viết
    Trích Nguyên văn bởi ndu96081631 View Post
    Nếu viết thành code, MinhCong nên làm theo hướng thế này:
    - Nối chuổi thành KQ
    - Xét chuổi KQ, định dạng đoạn đầu giống như chang như cell thứ nhất và đoạn cuối giống y chang cell thứ 2
    Có nghìa là 2 cell nguồn định dạng thế nào thì KQ cũng y thế
    Theo góp ý của Anh Em điều chỉnh lại code như sau. Anh xem góp ý thêm cho Em nhé!
    Code:
    Sub Noichu()
    Dim i As Long, enR As Long
    Range("C:C").Clear
    enR = Sheet1.Range("A65536").End(xlUp).Row
     For i = 1 To enR
        With Cells(i, 3)
            .FormulaR1C1 = "=RC[-2]&"" ""&RC[-1]"
            .Value = .Value
        End With
        If Cells(i, 1) <> "" Then
          With Cells(i, 3).Characters(Start:=1, Length:=Len(Cells(i, 1))).Font
             .FontStyle = Cells(i, 1).Font.FontStyle
             .ColorIndex = Cells(i, 1).Font.ColorIndex
          End With
          With Cells(i, 3).Characters(Start:=Len(Cells(i, 1)) + 2, Length:=Len(Cells(i, 2))).Font
             .FontStyle = Cells(i, 2).Font.FontStyle
             .ColorIndex = Cells(i, 2).Font.ColorIndex
          End With
        Else
          With Cells(i, 3).Characters(Start:=1, Length:=Len(Cells(i, 2)) + 1).Font
             .FontStyle = Cells(i, 2).Font.FontStyle
             .ColorIndex = Cells(i, 2).Font.ColorIndex
          End With
        End If
     Next
    End Sub
    Tập tin đính kèm Tập tin đính kèm
    • Loại tập tin: xls GPE.xls (33.0 KB, 51 lần tải)
    Một ngày không thể không nghĩ, không thể không học!

  8. Có 2 thành viên cảm ơn MinhCong về bài viết này:


  9. #5
    Tham gia ngày
    06 2008
    Bài gởi
    22,992
    Cảm ơn
    13,011
    Được cảm ơn 40,593 lần trong 18,498 bài viết
    Trích Nguyên văn bởi MinhCong View Post
    Theo góp ý của Anh Em điều chỉnh lại code như sau. Anh xem góp ý thêm cho Em nhé!
    Tôi thì viết vầy:
    PHP Code:
    Function JoinText(ByVal sRng As RangeByVal Sep As String) As String
      On Error 
    GoTo NextStp
      
    If sRng.Count 1 Then JoinText sRng.Value: Exit Function
      
    With WorksheetFunction
        JoinText 
    Join(.Transpose(sRng), Sep)
        Exit Function
    NextStp:
        
    JoinText Join(.Transpose(.Transpose(sRng)), Sep)
      
    End With
    End 
    Function 
    PHP Code:
    Private Sub MergeStr(ByVal sRng As RangeByVal Sep As StringByVal Target As Range)
      
    Dim Clls As Rangest As LongAs Longifnt As Font
      Target
    .Value JoinText(sRngSep)
      For 
    Each Clls In sRng
        
    For 1 To Len(Clls)
          
    With Target.Characters(st i1).Font
            Set ifnt 
    Clls.Characters(i1).Font
            
    .FontStyle ifnt.FontStyle
            
    .Name ifnt.Name
            
    .ColorIndex ifnt.ColorIndex
            
    .Size ifnt.Size
            
    .Underline ifnt.Underline
            
    .Strikethrough ifnt.Strikethrough
            
    .Superscript ifnt.Superscript
            
    .Subscript ifnt.Subscript
          End With
        Next i
        st 
    st Len(Clls) + Len(Sep)
      
    Next
    End Sub 
    PHP Code:
    Sub Main()
      
    Dim i As Long
      With Selection
        
    For 1 To .Rows.Count
          MergeStr Range
    (.Rows(i).Address), " ", .Offset(, .Columns.Count)(i1)
        
    Next
      End With
    End Sub 
    Thử file đính kèm này xem thế nào nhé
    Tập tin đính kèm Tập tin đính kèm
    thay đổi nội dung bởi: ndu96081631, 24-09-10 lúc 07:50 PM

  10. Có 3 thành viên cảm ơn ndu96081631 về bài viết này:


  11. #6
    Tham gia ngày
    05 2009
    Nơi Cư Ngụ
    Q. Bình Tân, Tp. HCM
    Bài gởi
    154
    Cảm ơn
    134
    Được cảm ơn 21 lần trong 14 bài viết
    Cảm Ơn Bác ndu96081631 đã có code rất hay để hoc hỏi. Nhưng em nghi Bác có thể viết dưới dạng như một hàm trong excel được không? để e có thể gọi nó bất cứ chỗ nào không phải nhấn nút. gì nhu cầu của e chỉ có 2 cell thôi
    VD: = NoiChuoi(A1:A2)
    Xin Cảm ơn!

  12. #7
    Tham gia ngày
    06 2008
    Bài gởi
    22,992
    Cảm ơn
    13,011
    Được cảm ơn 40,593 lần trong 18,498 bài viết
    Trích Nguyên văn bởi mymapmap View Post
    Cảm Ơn Bác ndu96081631 đã có code rất hay để hoc hỏi. Nhưng em nghi Bác có thể viết dưới dạng như một hàm trong excel được không? để e có thể gọi nó bất cứ chỗ nào không phải nhấn nút. gì nhu cầu của e chỉ có 2 cell thôi
    VD: = NoiChuoi(A1:A2)
    Xin Cảm ơn!
    Không được đâu!
    Bạn nên biết rằng:
    - Hàm chỉ có chức năng tính toán và xuất ra 1 kết quả nào đó
    - Hàm không có chức năng định dạng hoặc thay đổi thuộc tính của cell ---> Công việc này thích hợp với các THỦ TỤC (gọi là Sub)

  13. Thành viên sau cảm ơn ndu96081631 về bài viết này:


  14. #8
    Trích Nguyên văn bởi ndu96081631 View Post
    Tôi thì viết vầy:
    PHP Code:
    Function JoinText(ByVal sRng As RangeByVal Sep As String) As String
      On Error 
    GoTo NextStp
      
    If sRng.Count 1 Then JoinText sRng.Value: Exit Function
      
    With WorksheetFunction
        JoinText 
    Join(.Transpose(sRng), Sep)
        Exit Function
    NextStp:
        
    JoinText Join(.Transpose(.Transpose(sRng)), Sep)
      
    End With
    End 
    Function 
    PHP Code:
    Private Sub MergeStr(ByVal sRng As RangeByVal Sep As StringByVal Target As Range)
      
    Dim Clls As Rangest As LongAs Longifnt As Font
      Target
    .Value JoinText(sRngSep)
      For 
    Each Clls In sRng
        
    For 1 To Len(Clls)
          
    With Target.Characters(st i1).Font
            Set ifnt 
    Clls.Characters(i1).Font
            
    .FontStyle ifnt.FontStyle
            
    .Name ifnt.Name
            
    .ColorIndex ifnt.ColorIndex
            
    .Size ifnt.Size
            
    .Underline ifnt.Underline
            
    .Strikethrough ifnt.Strikethrough
            
    .Superscript ifnt.Superscript
            
    .Subscript ifnt.Subscript
          End With
        Next i
        st 
    st Len(Clls) + Len(Sep)
      
    Next
    End Sub 
    PHP Code:
    Sub Main()
      
    Dim i As Long
      With Selection
        
    For 1 To .Rows.Count
          MergeStr Range
    (.Rows(i).Address), " ", .Offset(, .Columns.Count)(i1)
        
    Next
      End With
    End Sub 
    Thử file đính kèm này xem thế nào nhé
    Xin Chào Bác NDU, Cũng với code của Bác nhưng em muốn thay thế khoảng trắng bằng kí tự Char(10) thì cần cân chỉnh gì ạ, em đạ thử nhiều lần với vốn kiến thức ít ỏi của em mà cũng chưa được. Nay mạo muo5i nhờ Bác giúp thêm chút nữa.

Thông tin về chủ đề này

Users Browsing this Thread

Hiện có 1 người đang xem đề tài này. (0 thành viên và 1 khách)

Đề tài tương tự

  1. Chuyển đổi từ chuỗi sang số
    Viết bởi gnoudn2d trong chuyên mục Xử lý chuỗi ký tự
    Trả lời: 10
    Bài mới gởi: 14-01-12, 01:57 PM
  2. Chuyển văn bản PDF tiếng việt sang Word
    Viết bởi ongtrungducmx25 trong chuyên mục Những vấn đề chung
    Trả lời: 3
    Bài mới gởi: 11-10-11, 05:06 AM
  3. hàm chuyển đổi chuỗi sang số
    Viết bởi loveall0805 trong chuyên mục Xử lý chuỗi ký tự
    Trả lời: 3
    Bài mới gởi: 30-07-10, 10:52 AM
  4. Chuyển định dạng văn bản từ word sang excel !
    Viết bởi malia trong chuyên mục Phần mềm xử lý văn bản và chế bản điện tử
    Trả lời: 1
    Bài mới gởi: 05-05-10, 08:45 PM
  5. Chuyển từ số sang chuỗi như thế nào?
    Viết bởi 08dqt02 trong chuyên mục Hàm và công thức Excel
    Trả lời: 4
    Bài mới gởi: 09-12-08, 01:22 PM

Bookmarks

Bookmarks

Quyền Sử Dụng Ở Diễn Ðàn

  • Bạn không thể đăng đề tài mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng file đính kèm.
  • Bạn không thể sửa bài viết.
  •  

Mudim v0.8 Tắt VNI Telex Viqr Tổng hợp
Chính tả Bỏ dấu kiểu mới  [Bật/Tắt (F9)]