Phân cách văn bản trong ô thành cột theo chiều dọc
Trong bài viết này, chúng ta sẽ tạo một macro để phân tách văn bản trong ô thành cột theo chiều dọc. Chúng ta có thể phân cách văn bản trong ô dựa trên dấu phân cách. Dấu phân cách có thể là dấu phẩy, dấu cách, dấu gạch chéo ngược, v.v.
Để giải thích hoạt động của macro, chúng tôi đã lấy URL làm văn bản mẫu trong ô A10. Macro có thể được thực hiện bằng cách nhấp vào nút “Gửi”.
Sau khi thực hiện macro, nó sẽ trả về kết quả đầu ra trong cột tiếp theo.
Giá trị văn bản trong ô được phân tách thành nhiều chuỗi con trong nhiều ô trong cột thứ hai.
Giải thích logic
Chúng tôi đã tạo một macro “texttocolumns” thực hiện hai tác vụ.
Thứ nhất, nó phân tách chuỗi trong A10 thành nhiều chuỗi con, dựa trên dấu phân cách. Trong ví dụ này, chúng tôi đã sử dụng dấu gạch ngang (-) làm dấu phân cách. Thứ hai, nó duyệt các chuỗi con được tạo từ nhiều cột đến một cột duy nhất.
Giải thích mã
Rng.texttocolumns Đích: = Rng.Offset (0, 1), DataType: = xlDelimited, _ TextQualifier: = xlDoubleQuote, ConsariesDelimiter: = True, Other: = True, OtherChar _: = “-“
Đoạn mã trên được sử dụng để phân tách chuỗi trong phạm vi “Rng”. Đích chỉ định phạm vi vị trí nơi đầu ra sẽ xuất hiện. DataType chỉ định loại dấu phân cách được sử dụng. TextQualifier chỉ định ký tự được sử dụng cho định tính văn bản. OtherChar chỉ định ký tự được sử dụng làm dấu phân cách.
Vui lòng theo dõi bên dưới để biết mã
Sub texttocolumns() 'Declaring variables Dim StartRow, i, LastCol As Long Dim Rng As Range 'disabling the display alerts Application.DisplayAlerts = False 'Initializing the variable StartRow = 10 Set Rng = Range("A10") 'Separting the text based on the delimiter Rng.texttocolumns Destination:=Rng.Offset(0, 1), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Other:=True, OtherChar _ :="-" 'Finding the column number of cell containing the last string after delimiting LastCol = Rng.End(xlToRight).Column 'arranging the text in columns to rows For i = 2 To LastCol Cells(10, i).Cut Cells(StartRow, 2) StartRow = StartRow + 1 Next i End Sub
Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.
Chúng tôi rất muốn nghe ý kiến từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]