Copy ô dòng trên và sau đó thay đổi vị trí 02 từ đầu dòng

Liên hệ QC

Cát Lượng

Thành viên tiêu biểu
Tham gia
14/11/18
Bài viết
403
Được thích
66
Xin chào các anh chị, em xin được sự giúp đỡ từ các anh chị vấn đề sau:

Coppy ô dòng trên tương ứng (giống lệnh Ctr + D) nhưng thêm một tác dụng là sẽ đổi thứ tự của 2 từ đầu dòng, và sau đó tô màu chữ nội dung ô vừa được thực hiện.

Ví dụ cụ thể như sau:

Ô số E9 có nội dung: “Láng vữa đáy, thành bể , vữa xi măng mác 100”

Sau khi chèn thủ công một dòng trống em muốn coppy (dùng một phím tắt để chạy code giống như dùng Ctr + D ) ô E9 xuống ô E10 để ô E10 có nội dung và tô màu chữ nội dung đó thành màu tím nhạt nhạt như sau:

“Vữa láng đáy, thành bể , vữa xi măng mác 100”.

Mong sự giúp đỡ từ các thầy, các anh chị.
anh tic.png
 

File đính kèm

  • Tin tac.xls
    27 KB · Đọc: 8
Lần chỉnh sửa cuối:
Fill là lọc ạ, nhưng em vẫn chưa hình dung ra ạ!
Vui ghê. Fill là một dạng tựa Copy. Nhưng nó tuần tự có chiều, trên xuống, dưới lên, sang phải, trái sang phải.
Ctrl+D giúp bạn Fill Nhanh hơn với vùng đã chọn. Và Copy những gì có từ hàng đầu tiên.
Ctrl+R Fill sang phải.
Fill là Lọc thì bạn cần học lại Excel gấp rồi
 
Upvote 0
Trên đời này chỉ có a giúp được em thôi. A làm xong rồi e chỉ cần Nhấn 1 phát nó làm xong hết. A chưa quay video được tại Nhà a đang có Khách
Hi, khi nào anh ngối máy thì giúp em ạ! em mới học excel nên nhìu cái chưa rõ.
Cám ơn anh! ..... Nam mô...
Bài đã được tự động gộp:

Vui ghê. Fill là một dạng tựa Copy. Nhưng nó tuần tự có chiều, trên xuống, dưới lên, sang phải, trái sang phải.
Ctrl+D giúp bạn Fill Nhanh hơn với vùng đã chọn. Và Copy những gì có từ hàng đầu tiên.
Ctrl+R Fill sang phải.
Fill là Lọc thì bạn cần học lại Excel gấp rồi
Đầy đủ có phải là " Fill Handle " không anh?
 
Lần chỉnh sửa cuối:
Upvote 0
@Cát Lượng
Lấy Code ở #8 nhé.
Mã:
'Copy vào ThisWorkbook Code
Private Sub Workbook_Open()
'Ctrl + Shift + M
  OnKeyM
End Sub
'Copy vào Module
Sub UmBaLaXiBum()
Selection(2, 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection(2, 1).value = thaydoi(Selection.Value)
Selection(2,1).Font.COLOR = -2648346
End Sub
Sub OnKeyM()
Application.OnKey "{^+M}", "UmBaLaXiBum"
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
@Cát Lượng
Lấy Code ở #8 nhé.
Mã:
'Copy vào ThisWorkbook Code
Private Sub Workbook_Open()
'Ctrl + Q
  Application.OnKey "{^+Q}", "UmBaLaXiBum"
End Sub
'Copy vào Module
Sub UmBaLaXiBum()
    Selection(2, 1).value = thaydoi(Selection.Value)
End Sub
Lấy cả code ở bài #8 vào module
còn code của anh ở bài này cho vào ThisWorkbook
Đúng k ạ?
 
Upvote 0
Đây bạn xem
Mã:
Function thaydoi(ByVal chuoi As String, Optional ByVal phancach = " ") As String
Dim a As Long, aT, T
Dim i As Long
T = Split(phancach & chuoi, phancach)
a = UBound(T)
If a > 1 Then
   aT = WorksheetFunction.Proper(T(2)) & " " & T(1)
   If a > 2 Then
      For i = 3 To a
          aT = aT & " " & T(i)
      Next i
   End If
End If
thaydoi = aT
End Function
Mã:
=thaydoi(E11)
anh ơi sao lại có dòng code
Báo lỗi vậy anh, là do đâu vậy ạ?
terett.png
 
Upvote 0
@Cát Lượng
Trời đất. Lấy Function về, Đưa Private sang.
Thêm cái này vào cho nó Tím tím cho Đệp
PHP:
Selection(2,1).Font.COLOR = -2648346
 
Upvote 0
Vui ghê. Fill là một dạng tựa Copy. Nhưng nó tuần tự có chiều, trên xuống, dưới lên, sang phải, trái sang phải.
Ctrl+D giúp bạn Fill Nhanh hơn với vùng đã chọn. Và Copy những gì có từ hàng đầu tiên.
Ctrl+R Fill sang phải.
Fill là Lọc thì bạn cần học lại Excel gấp rồi
Em biết lệnh Fill rồi, anh có thể nói rõ em chút trình tự để thực hiện không ạ:
Em làm như sau:
Ấn ghi maccro sau đó làm:
1. nhấn Ctrl + D để coppy dòng trên
2. sau đó đảo ngược 02 từ đầu dòng
3. sáu đó dùng fill từ trên xuống
4. rồi sao nữa ạ?
 
Upvote 0
Em biết lệnh Fill rồi, anh có thể nói rõ em chút trình tự để thực hiện không ạ:
Em làm như sau:
Ấn ghi maccro sau đó làm:
1. nhấn Ctrl + D để coppy dòng trên
2. sau đó đảo ngược 02 từ đầu dòng
3. sáu đó dùng fill từ trên xuống
4. rồi sao nữa ạ?
Khó bỏ đi dùng mấy Code trên Chọn Cells rồi Ctrl+Q
 
Upvote 0
Upvote 0
Thôi thế này ...
Không chèn dòng bằng tay gì cả. Đã code thì nó làm từ A đến Z thôi, chứ sao lại phải tự cầy nửa thửa trước?
Chọn ô cần copy xuống và đảo sau đó nhấn phím tắt
Alt + F11 -> menu Insert -> Module -> dán code sau
Mã:
Sub chen_dan()
Dim k As Long, text As String, s As String
    If TypeName(Selection) = "Range" Then
        If Selection.Parent.Name = "Trang_tinh1" 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
Bạn tự lập phím tắt mà mình ưa thích. Sau đó: chọn ô -> nhấn phím tắt.

Chú ý là trong code dùng "Trang_tinh1", tức sửa tên sheet thành không có dấu - ký tự Việt. Nếu tên sheet sẽ khác thì sửa trong code cho thích hợp
5 ở trong Selection.Column = 5 có nghĩa là cột E. Nệu cột khác thì tự sửa lại.
 
Lần chỉnh sửa cuối:
Upvote 0
Thôi thế này ...
Không chèn dòng bằng tay gì cả. Đã code thì nó làm từ A đến Z thôi, chứ sao lại phải tự cầy nửa thửa trước?
Chọn ô cần copy xuống và đảo sau đó nhấn phím tắt
Alt + F11 -> menu Insert -> Module -> dán code sau
Mã:
Sub chen_dan()
Dim k As Long, text As String, s As String
    If TypeName(Selection) = "Range" Then
        If Selection.Parent.Name = "Trang_tinh1" 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
Bạn tự lập phím tắt mà mình ưa thích. Sau đó: chọn ô -> nhấn phím tắt.

Chú ý là trong code dùng "Trang_tinh1", tức sửa tên sheet thành không có dấu - ký tự Việt. Nếu tên sheet sẽ khác thì sửa trong code cho thích hợp
5 ở trong Selection.Column = 5 có nghĩa là cột E. Nệu cột khác thì tự sửa lại.
Vâng, em thực hành như thầy nói:
Alt + F11 -> menu Insert -> Module -> dán đoạn code trên vào rồi chạy nhưng không thấy tác động gì.
Thầy cho em hỏi em làm có lỗi ở đoạn nào không ạ?
Có kèm video dưới thầy bớt chút thời gian xem giúp em.
 

File đính kèm

  • Thuc hanh.rar
    2.2 MB · Đọc: 7
Upvote 0
Vâng, em thực hành như thầy nói:
Alt + F11 -> menu Insert -> Module -> dán đoạn code trên vào rồi chạy nhưng không thấy tác động gì.
Thầy cho em hỏi em làm có lỗi ở đoạn nào không ạ?
Có kèm video dưới thầy bớt chút thời gian xem giúp em.
Tôi khác người ở chỗ luôn hướng dẫn rất tỉ mỉ. Nhưng nhiều người lại không đọc kỹ. Uổng công của người khác.

Tôi đã viết là sửa tên thành "Trang_tinh1", nhưng bạn vẫn có "Trang_tính1" (có dấu sắc trên "i")
 
Upvote 0
Web KT
Back
Top Bottom