Chuyển trật tự các dòng trong cùng ô theo chiều ngược lại

Liên hệ QC

nguyensang

Thành viên mới
Tham gia
12/1/08
Bài viết
2
Được thích
0
Theo yêu cầu của công viêc tôi phải thay đổi trật tự các dòng trong cùng 1 ô, nghĩa là đảo các dòng theo chiều ngược lại nhưng không thay đổi vị trí của các chữ trong các dòng này, Mong các bạn giải đáp dùm!!
 

File đính kèm

Lần chỉnh sửa cuối:
'Bạn thử dùng Đoạn code này xem!

Option Explicit

Sub thaydoiTT()
Dim dong, ii As Integer

Range("A2").End(xlDown).Select
dong = ActiveCell.Row
Rows("" & dong & ":" & dong & "").Select
For ii = 0 To dong - 3
Selection.Cut
ActiveCell.Offset(-dong + ii + 2).Select
Selection.Insert Shift:=xlDown
Rows("" & dong & ":" & dong & "").Select
Next ii

End Sub
========================
!$@!! Theo mình nghĩ nên dùng Replace là nhanh nhất!
 

File đính kèm

Lần chỉnh sửa cuối:
Hình như file trên chưa đúng với yêu cầu thì phải!
Theo yêu cầu của công viêc tôi phải thay đổi trật tự các dòng trong cùng 1 ô
Chú ý chổ in đậm màu đỏ nhé...
Tôi có nghĩ qua giãi pháp nhưng thấy khó quá, vì trong cell có Wrap text, khi đão vị trí xong thì chẳng biết làm sao cho nó có Format Wrap text giống như củ...
ANH TUẤN
 
Mình thì lại cho là không phải Wrap text mà là khi typing họ nhấn Alt+Enter để xuống dòng . Vấn đề là làm sao bẫy được "kí tự " này .
 
Có thể dùng code sau (của NVSon)
PHP:
Option Explicit
Public Function daochuoi(strText As String)
Dim strText2() As String 'nvson
Dim strText3 As String
Dim i
strText = strText
strText2 = Split(strText, Chr(10))
For i = UBound(strText2) To 0 Step -1
    strText3 = strText3 & Chr(10) & strText2(i)
Next i
daochuoi = Right(strText3, Len(strText3) - 1)
End Function
Sao đó copy format từ cell nguồn hay format chọn wrap text
Có thể dùng sự kiện change.
 
Lần chỉnh sửa cuối:
kongcom đã viết:
Mình thì lại cho là không phải Wrap text mà là khi typing họ nhấn Alt+Enter để xuống dòng . Vấn đề là làm sao bẫy được "kí tự " này .
Khi ta Alt + Enter thì đó cũng chính là Wrap text đấy, có điều cái này là ta chủ động cho xuống dòng ở nơi nào đó tùy ý... Còn như gõ bình thường rồi chọn Wrap text thì Excel sẽ tự cân chỉnh theo quan điểm vừa đũ độ rộng cột thì xuống hàng...
-------------------------
Hàm cũa ThuNghi sau khi làm xong thì phải Format lại cell mới cho kết quã đúng yêu cầu... Có cách nào đưa Wrap text vào luôn ko nhỉ? Tôi làm thử nhưng nó chẳng tác dụng gì cã
ANH TUẤN
 
Lần chỉnh sửa cuối:
ThuNghi đã viết:
Có thể dùng code sau (của NVSon)
PHP:
Option Explicit
Public Function daochuoi(strText As String)
Dim strText2() As String 'nvson
Dim strText3 As String
Dim i
strText = strText
strText2 = Split(strText, Chr(10))
For i = UBound(strText2) To 0 Step -1
    strText3 = strText3 & Chr(10) & strText2(i)
Next i
daochuoi = Right(strText3, Len(strText3) - 1)
End Function
Sao đó copy format từ cell nguồn hay format chọn wrap text
Có thể dùng sự kiện change.

Em chỉnh lại chút nhé!

PHP:
Public Function DaoTuInCell(strText As String)
    Dim aText() As String
    Dim strTemp As String, i As Integer
    aText = Split(strText, Chr(10))
    strTemp = aText(UBound(aText))
    For i = UBound(aText) - 1 To 0 Step -1
        strTemp = strTemp & Chr(10) & aText(i)
    Next i
    DaoTuInCell = strTemp
End Function

To anh Tuấn: Muốn cho format Wrap Text thì phải dùng Thủ tục chứ không dùng UDF được.

Thanh Phong
 
Mình còn một câu hỏi nhỏ nửa, vì là function nên có lẽ sẽ được gọi trực tiếp trên excel, vậy có cách nào thực hiện lệnh này trực tiếp được không, thú nhận là m biết rất ít về VBE.

----------------
Bạn nên mô tả yêu cầu/ câu hỏi của mình càng rõ càng tốt (nói dông nói dài cũng được) sao cho mọi người hiểu đúng ý để có thể giúp bạn chính xác và đỡ tốn thời gian hơn!
 
Chỉnh sửa lần cuối bởi điều hành viên:
nguyensang đã viết:
Mình còn một câu hỏi nhỏ nửa, vì là function nên có lẽ sẽ được gọi trực tiếp trên excel, vậy có cách nào thực hiện lệnh này trực tiếp được không, thú nhận là m biết rất ít về VBE.

Đó là bạn tạo hàm này thành AddIn -> lần sau sử dụng nó trong excel như các hàm bình thường

Để tạo AddIn bạn làm như sau:

+ Tạo 1 file mới, bấm Alt+F11 để vào VBE, Insert \ module -> copy đoạn code (đã viết trên) vào module

+ Đóng VBE trở về Excel, Save File này lại với trong File type chọn định dạng là .xla (file AddIn)

+ Load file AddIn này vào Excel bằng cách: Tool \ AddIn \ bấm Browre chọn file xla vừa lưu trên

Thế là từ lần sau bạn vào excel là hàm này đã thường trú -> bạn sd bình thường
.
 
E rằng ý bạn ấy ko phải vậy! Tôi đoán cái bạn ấy muốn có liên quan đến Change: Gõ vào cell, cột bên canh tự ra kết quã mà ko cần dùng Function... hoặc giã bạn ấy muốn tạo 1 Sub, khi xong việc bấm 1 phát sẽ ra kết quã...
Mến
ANH TUẤN

-----------------
Anh Tuấn nên để tác giả tự diễn giải câu hỏi của mình nếu thấy người trả lời chưa đúng yêu cầu!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Web KT

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

Back
Top Bottom